Dm主备集群部署
部署环境 | 鲲鹏920-麒麟V10 |
版本包 | dm-8.0.zip |
部署用户 | 普通用户(需要root权限操作) |
部署方式 | 集群 |
注意事项 | 该部署需要切换root用户操作 |
1. 准备工作
1.1创建普通用户
# 创建用户组
sudo groupadd dinstall -g 2025
# 创建普通用户
sudo useradd -g dinstall dmdba -u 2025
sudo passwd dmdba
自定义输入密码
dmdba@2024
# 赋权指定文件夹
sudo chown dmdba:dinstall /mnt/dm/ -R
sudo chmod 777 /mnt/dm/ -R
1.2 永久修改limits.conf
##编辑 limits.conf 文件
root用户下操作
[root@~]# vim /etc/security/limits.conf
##在最后面添加以下内容
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
dmdba soft nice 0
dmdba hard nice 0
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
#切换用户验证配置是否生效
[root@~]# su - dmdba
[dmdba@~]# ulimit -a ## 确认是否生效
1.4 关闭防火墙
root用户下操作
# 查看防火墙状态
firewall-cmd --state
执行关闭防火墙,禁用防火墙开机自启
sudo systemctl stop firewalld
sudo systemctl disable firewalld
再次查看状态
2、集群规划(参考)
A 机器 | B 机器 | |
IP地址 | 162.30.*.220 | 162.30.*.221 |
实例名 | GRP1_RT_01 | GRP1_RT_02 |
实例端口 | 5236 | 5236 |
MAL 端口 | 5336 | 5336 |
MAL 守护进程端口 | 5436 | 5436 |
守护进程端口 | 5536 | 5536 |
OGUID | 45331 | 45331 |
守护组 | GRP1 | GRP1 |
安装目录 | /mnt/dm/dmdbms | /mnt/dm/dmdbms |
实例目录 | /mnt/dm/dmdbms/data/ | /mnt/dm/dmdbms/data/ |
归档上限 | 51200 | 51200 |
确认监视器 IP 为 162.30.*.220。
说明:具体规划及部署方式以现场环境为准。
请根据实际选择空间大的路径,在安装时配置,所有路径为了简便可以进行直接替换,例如A机器的路径可以直接使用实际路径替换本文的/mnt/dm/dmdbms,B机器的路径可以使用实际路径替换本文的/mnt/dm/dmdbms。
2.1集群架构
搭建的主备集群架构如下图:
2.2切换模式说明
故障切换方式 | dmarch | dmwatcher | dmmonitor | 监视器要求 |
故障手动切换 | ARCH_WAIT_APP | DW_MODE= | MON_DW_CON | 1、配置手动切换:集群各节点的 bin 目录中,存放非确认监视器配置文件。 |
故障自动切换 | ARCH_WAIT_APP | DW_MODE= | MON_DW_CON | 1、配置手动切换:集群各节点的 bin 目录中,存放非确认监视器配置文件。 |
ARCH_WAIT_APPLY 参数,设置为 0:高性能模式;设置为 1:事务一致模式。
故障手动切换情境下 ARCH_WAIT_APPLY 只能为 0。故障自动切换情境下 ARCH_WAIT_APPLY 可以为 0,也可以为 1。
ARCH_WAIT_APPLY 参数设置的判断依据为业务是否要查询备机最新数据。如果需要,则配置为 1(较大性能衰减);如果不需要,则配置为 0。
3、dm集群安装
在每一台机器上进行安装,注意根据需要改为空间大的安装路径。
# 切换普通用户
su - dmdba
#进入文件夹
cd /mnt/dm
#将安装包dm-8.0.zip放入该路径下
#解压
unzip dm-8.0.zip
3.1 安装
#进入dm-8.0目录
cd /mnt/dm/dm-8.0
确保文件具有执行权限
为文件添加执行权限:
chmod +x DMInstall.bin
- 执行以下命令进行命令行安装:
/mnt/dm/dm-8.0/DMInstall.bin -i
- 选择安装语言
根据系统配置选择相应语言,输入c选项,回车进行下一步。如下所示:
Please select the installer's language (E/e:English C/c:Chinese) [E/e]:c
解压安装程序.........
欢迎使用达梦数据库安装程序
3)验证 key 文件
可以选择是否输入 Key 文件路径。不输入则进入下一步安装,输入 Key 文件路径,安装程序将显示 Key 文件的详细信息,如果是合法的 Key 文件且在有效期内,可以继续安装。如下所示:
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:N
4)输入时区
可以选择的时区信息。如下所示:
是否设置时区? (Y/y:是 N/n:否) [Y/y]:Y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:21
5)选择安装类型
数据库软件安装程序提供四种安装方式:“典型安装”、“服务器安装”、“客户端安装”和“自定义安装”,用户可根据实际情况灵活地选择。如下所示:
典型安装包括:服务器、客户端、驱动、用户手册、数据库服务。
服务器安装包括:服务器、驱动、用户手册、数据库服务。
客户端安装包括:客户端、驱动、用户手册。
自定义安装包括:用户根据需求勾选组件,可以是服务器、客户端、驱动、用户手册、数据库服务中的任意组合。
生产环境可以根据实际需求选择,一般情况下选择"典型安装"即可。
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 2201M
6)选择安装路径
输入数据库软件的安装路径,不输入则使用默认路径,默认路径为 $HOME/dmdbms (如果安装用户为 root ,则默认安装路径为/opt/dmdbms ,但不建议使用 root 系统用户来安装)。注意根据需要改为空间大的路径,例如改为/data/dmdbms ,安装程序就会在data路径下创建dmdbms文件夹并安装。
直接按回车即可。
如下所示:
请选择安装目录 [/mnt/dm/dmdbms]:
可用空间: 420G
当安装进度完成时将会弹出对话框,提示使用 root 系统用户执行相关命令。用户可根据对话框的说明完成相关操作,之后可关闭此对话框,点击“完成”按钮结束安装。如下所示:
root用户下操作:
[dmdba@~]# su root
密码:<输入密码>
[root@~]# /mnt/dm/dmdbms/script/root/root_installer.sh
3.2 集群搭建
3.2.1机器A
机器A的安装目录为/mnt/dm/dmdbms,可直接用实际地址全文替换。
切换回dmdba用户
在root用户下输入exit
或直接切换dmdba用户
su dmdba
进入安装目录
cd /mnt/dm/dmdbms/bin
./dminit PATH=/mnt/dm/dmdbms/data/ INSTANCE_NAME=GRP1_RT_01 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048 CASE_SENSITIVE=0 LENGTH_IN_CHAR=1
(备注:INSTANCE_NAME不需要与服务器的域名一致,可以根据需求自定义,长度必须小于 16 个字符,只能包含字母、数字、下划线(_)或连字符(-),且不能以数字开头)
3.2.1.1启动前台实例服务(不是后台运行,启动后,后面的操作在新的ssh窗口进行)
cd /mnt/dm/dmdbms/bin
./dmserver /mnt/dm/dmdbms/data/DAMENG/dm.ini
3.2.1.2启用dmap服务(开启新的ssh窗口,前面启动的服务不要停)
开启新ssh窗口后记得使用dmdba用户
su dmdba
进入dm安装路径下的执行路径
cd /mnt/dm/dmdbms/bin/
启动dmap服务
./dmap
如果出现如下报错,需先停止自动启用的dmap服务
ps aux|grep dmap
找到dmap的PID
然后
Kill 此PID
再启用dmap服务
./dmap
3.2.1.3开启归档(开启新的ssh窗口,前面启动的服务不要停)
开启新ssh窗口后记得使用dmdba用户
su dmdba
进入dm安装路径下的执行路径
cd /mnt/dm/dmdbms/bin/
连接数据库服务(端口默认为5236)
./disql SYSDBA/SYSDBA@127.0.0.1:5236
在sql命令行中顺序执行以下语句:
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/mnt/dm/dmdbms/data/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;
#备份数据
BACKUP DATABASE BACKUPSET '/mnt/dm/dmdbms/data/DAMENG/bak/BACKUP_FILE';
#修改 dm.ini
SP_SET_PARA_VALUE (2,'PORT_NUM',5236);
SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);
SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);
SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);
SP_SET_PARA_VALUE (2,'MAL_INI',1);
SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64);
在sql命令行执行完以上语句后输入exit回车退出
关闭dmap服务,在启动dmap的ssh窗口输入exit回车退出
关闭前台实例服务,在启动前台实例服务的ssh窗口输入exit回车退出
3.2.1.4 修改dmarch.ini
dmdba用户操作
备份原来的dmarch.ini为dmarch.ini.bak
mv /mnt/dm/dmdbms/data/DAMENG/dmarch.ini /mnt/dm/dmdbms/data/DAMENG/dmarch.ini.bak
然后新建dmarch.ini
vi /mnt/dm/dmdbms/data/DAMENG/dmarch.ini
配置以下内容:
ARCH_WAIT_APPLY = 0 #0:高性能 1:事务一致
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /mnt/dm/dmdbms/data/DAMENG/arch/ #本地归档存放路径
ARCH_FILE_SIZE = 1024 #单个归档大小,单位 MB
ARCH_SPACE_LIMIT = 51200 #归档上限,单位 MB
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_02 #实时归档目标实例名
3.2.1.5 创建dmmal.ini
dmdba用户操作
vi /mnt/dm/dmdbms/data/DAMENG/dmmal.ini
如没有其他特定修改,只需修改黄色部分的ip即可
MAL_CHECK_INTERVAL = 10 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定 MAL 链路断开的时间
MAL_TEMP_PATH = /mnt/dm/dmdbms/data/malpath/ #临时文件目录
MAL_BUF_SIZE = 512 #单个 MAL 缓存大小,单位 MB
MAL_SYS_BUF_SIZE = 2048 #MAL 总大小限制,单位 MB
MAL_COMPRESS_LEVEL = 0 #MAL 消息压缩等级,0 表示不压缩
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01 #实例名,和 dm.ini 的 INSTANCE_NAME 一致
MAL_HOST = 162.30.*.220 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5336 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 162.30.*.220 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例对外服务端口,和 dm.ini 的 PORT_NUM 一致
MAL_DW_PORT = 5436 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 5536 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 162.30.*.221 #机器B的IP
MAL_PORT = 5336
MAL_INST_HOST = 162.30.*.221
MAL_INST_PORT = 5236
MAL_DW_PORT = 5436
MAL_INST_DW_PORT = 5536
3.2.1.6 创建 dmwatcher.ini
dmdba用户操作
vi /mnt/dm/dmdbms/data/DAMENG/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #MANUAL:故障手切 AUTO:故障自切
DW_ERROR_TIME = 20 #远程守护进程故障认定时间
INST_ERROR_TIME = 20 #本地实例故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_OGUID = 45331 #守护系统唯一 OGUID 值
INST_INI = /mnt/dm/dmdbms/data/DAMENG/dm.ini #dm.ini 文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /mnt/dm/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
3.2.1.7 拷贝备份文件
该操作前需要先在B机器上提前初始化实例,见3.2.2.1,初始化完成后请继续返回往下操作
否则会提示以下截图,没有/mnt/dm/dmdbms/data/DAMENG/bak这个路径
##拷贝备份文件到 B 机器
scp -r /mnt/dm/dmdbms/data/DAMENG/bak/BACKUP_FILE dmdba@162.30.*.221:/mnt/dm/dmdbms/data/DAMENG/bak
其中:
/mnt/dm/dmdbms为机器A的安装目录
162.30.*.221为机器B的IP
/mnt/dm/dmdbms为机器B的安装目录
3.2.1.8 注册服务
root用户下操作
/mnt/dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_01 -dm_ini /mnt/dm/dmdbms/data/DAMENG/dm.ini -m mount
/mnt/dm/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /mnt/dm/dmdbms/data/DAMENG/dmwatcher.ini
若要删除自启,可利用如下方式:
/mnt/dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceGRP1_RT_01
/mnt/dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmWatcherServiceWatcher
3.2.2 机器B
机器B的安装目录为/mnt/dm/dmdbms,可直接用实际地址全文替换。
3.2.2.1 初始化实例
如已经在机器A拷贝备份文件时进行了初始化机器B的实例操作,就不需要再初始化了。
dmdba用户操作
/mnt/dm/dmdbms/bin/dminit PATH=/mnt/dm/dmdbms/data/ INSTANCE_NAME=GRP1_RT_02 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048 CASE_SENSITIVE=0 LENGTH_IN_CHAR=1
成功的初始化,如果启用时报错找不到libdmnsort.so文件,如下截图,则调整用户下的环境变量文件 .bashrc
vim ~/.bashrc
添加以下环境变量
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/mnt/dm/dmdbms/bin"
export DM_HOME="/mnt/dm/dmdbms"
保存后刷新
source ~/.bashrc
再执行初始化实例操作
3.2.2.2 启用dmap服务
dmdba用户操作
进入dm安装路径下的执行路径
cd /mnt/dm/dmdbms/bin/
启动dmap服务
./dmap
如果出现如下报错,需先停止自动启用的dmap服务
ps aux|grep dmap
找到dmap的PID
然后
Kill 此PID
再启用dmap服务
./dmap
3.2.2.3 恢复数据(开启新的ssh窗口,前面启动的服务不要停)
开启新ssh窗口后记得使用dmdba用户
su dmdba
执行以下三条语句
/mnt/dm/dmdbms/bin/dmrman CTLSTMT="RESTORE DATABASE '/mnt/dm/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/mnt/dm/dmdbms/data/DAMENG/bak/BACKUP_FILE'"
/mnt/dm/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/mnt/dm/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/mnt/dm/dmdbms/data/DAMENG/bak/BACKUP_FILE'"
/mnt/dm/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/mnt/dm/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
关闭dmap服务,在启动dmap的ssh窗口输入exit回车退出
3.2.2.4 替换 dmarch.ini
若无文件新建即可
vi /mnt/dm/dmdbms/data/DAMENG/dmarch.ini
添加以下内容:
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /mnt/dm/dmdbms/data/DAMENG/arch/ #本地归档存放路径
ARCH_FILE_SIZE = 1024 #单个归档大小,单位 MB
ARCH_SPACE_LIMIT = 51200 #归档上限,单位 MB
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_01 #实时归档目标实例名
3.2.2.5 配置 dm.ini
vi /mnt/dm/dmdbms/data/DAMENG/dm.ini
修改如下:
INSTANCE_NAME = GRP1_RT_02
PORT_NUM = 5236 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志重演信息
如没有其他特殊改动,仅需要找到标黄部分的配置将0改为1即可。
3.2.2.6 创建 dmmal.ini
vi /mnt/dm/dmdbms/data/DAMENG/dmmal.ini
添加以下内容
MAL_CHECK_INTERVAL = 10 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定 MAL 链路断开的时间
MAL_TEMP_PATH = /mnt/dm/dmdbms/data/malpath/ #临时文件目录
MAL_BUF_SIZE = 512 #单个 MAL 缓存大小,单位 MB
MAL_SYS_BUF_SIZE = 2048 #MAL 总大小限制,单位 MB
MAL_COMPRESS_LEVEL = 0 #MAL 消息压缩等级,0 表示不压缩
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01 #实例名,和 dm.ini 的 INSTANCE_NAME 一致
MAL_HOST = 162.30.*.220 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5336 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 162.30.*.220 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例对外服务端口,和 dm.ini 的 PORT_NUM 一致
MAL_DW_PORT = 5436 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 5536 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 162.30.*.221
MAL_PORT = 5336
MAL_INST_HOST = 162.30.*.221
MAL_INST_PORT = 5236
MAL_DW_PORT = 5436
MAL_INST_DW_PORT = 5536
3.2.2.7 创建 dmwatcher.ini
vi /mnt/dm/dmdbms/data/DAMENG/dmwatcher.ini
添加以下内容
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #MANUAL:故障手切 AUTO:故障自切
DW_ERROR_TIME = 20 #远程守护进程故障认定时间
INST_ERROR_TIME = 20 #本地实例故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_OGUID = 45331 #守护系统唯一 OGUID 值
INST_INI = /mnt/dm/dmdbms/data/DAMENG/dm.ini #dm.ini 文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /mnt/dm/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
3.2.2.8 注册服务
root用户下操作
su root
/mnt/dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_02 -dm_ini /mnt/dm/dmdbms/data/DAMENG/dm.ini -m mount
/mnt/dm/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /mnt/dm/dmdbms/data/DAMENG/dmwatcher.ini
若要删除自启,可利用如下方式:
/mnt/dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceGRP1_RT_02
/mnt/dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmWatcherServiceWatcher
3.2.3 配置确认监视器
配置确认监视器,存放确认监视器配置文件,并注册后台自启服务。
官方建议监视器配置在第三台机器上,本次部署在机器A上
3.2.3.1创建 dmmonitor.ini
使用dmdba用户
su dmdba
vi /mnt/dm/dmdbms/bin/dmmonitor.ini
添加以下内容:
MON_DW_CONFIRM = 1 #0:非确认(故障手切) 1:确认(故障自切)
MON_LOG_PATH = ../log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 512 #单个日志大小,单位 MB
MON_LOG_SPACE_LIMIT = 2048 #日志上限,单位 MB
[GRP1]
MON_INST_OGUID = 45331 #组 GRP1 的唯一 OGUID 值
MON_DW_IP = 162.30.*.220:5436 #IP对应MAL_HOST,PORT 对应 MAL_DW_PORT
MON_DW_IP = 162.30.*.221:5436
在配置监视器时,一般配置好确认监视器后,建议再配置一个非确认监视器的配置文件,在主备发生切换时,可以通过前台的方式启动非确认监视器进行手动切换。非确认监视器是通过将监视器配置文件中 MON_DW_CONFIRM 参数值修改为 0 来实现,示例如下:
vi /mnt/dm/dmdbms/bin/dmmonitor_manual.ini
添加以下内容:
MON_DW_CONFIRM = 0 #0:非确认(故障手切) 1:确认(故障自切)
MON_LOG_PATH = ../log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 512 #单个日志大小,单位 MB
MON_LOG_SPACE_LIMIT = 2048 #日志上限,单位 MB
[GRP1]
MON_INST_OGUID = 45331 #组 GRP1 的唯一 OGUID 值
MON_DW_IP = 162.30.*.220:5436 #IP对应MAL_HOST,PORT 对应 MAL_DW_PORT
MON_DW_IP = 162.30.*.221:5436
3.2.3.2 注册服务
root用户下操作
/mnt/dm/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /mnt/dm/dmdbms/bin/dmmonitor.ini
若要删除自启服务,可利用如下方式:
/mnt/dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmMonitorServiceMonitor
3.2.3.3 监视器使用
命令 | 含义 |
list | 查看守护进程的配置信息 |
show global info | 查看所有实例组的信息 |
tip | 查看系统当前运行状态 |
login | 登录监视器 |
logout | 退出登录 |
choose switchover GRP1 | 主机正常:查看可切换为主机的实例列表 |
switchover GRP1.实例名 | 主机正常:使用指定组的指定实例,切换为主机 |
choose takeover GRP1 | 主机故障:查看可切换为主机的实例列表 |
takeover GRP1.实例名 | 主机故障:使用指定组的指定实例,切换为主机 |
choose takeover force GRP1 | 强制切换:查看可切换为主机的实例列表 |
takeover force GRP1.实例名 | 强制切换:使用指定组的指定实例,切换为主机 |
3.2.4启动集群服务
3.2.4.1 机器A
使用dmdba用户操作
/mnt/dm/dmdbms/bin/DmServiceGRP1_RT_01 start
进入dm安装路径下的执行路径
cd /mnt/dm/dmdbms/bin/
进入sql命令行修改参数
./disql SYSDBA/SYSDBA@127.0.0.1:5236
在命令行执行以下4条语句:
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SP_SET_OGUID(45331);
ALTER DATABASE PRIMARY;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
退出sql命令行
exit
3.2.4.2 机器B
使用dmdba用户操作
/mnt/dm/dmdbms/bin/DmServiceGRP1_RT_02 start
进入dm安装路径下的执行路径
cd /mnt/dm/dmdbms/bin/
进入sql命令行修改参数
./disql SYSDBA/SYSDBA@127.0.0.1:5236
在命令行执行以下4条语句:
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SP_SET_OGUID(45331);
ALTER DATABASE STANDBY;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
退出sql命令行
exit
3.2.4.3 启动机器守护DmWatcherServiceWatcher
使用dmdba用户
在A机器上执行以下语句
/mnt/dm/dmdbms/bin/DmWatcherServiceWatcher start
在B机器上执行以下语句
/mnt/dm/dmdbms/bin/DmWatcherServiceWatcher start
3.2.5 集群状态查看
3.2.5.1启动监视器
在监视器的服务器上,本例为机器A执行
使用dmdba用户
/mnt/dm/dmdbms/bin/DmMonitorServiceMonitor start
3.2.5.2查看集群状态
使用dmdba用户操作
进入dm安装路径下的执行路径
cd /mnt/dm/dmdbms/bin/
./dmmonitor /mnt/dm/dmdbms/bin/dmmonitor_manual.ini
集群状态如下:
3.2.5.2 dm_svc.conf 配置
若应用需要使用数据库名连接集群,则需要在应用部署服务器上配置dm_svc.conf文件;
vim /etc/dm_svc.conf
添加以下内容:
- ##以#开头的行表示是注释#
- ##全局配置区
- TIME_ZONE=(480)
- LANGUAGE=(cn)
- DMHA=(162.30.*.220:5236,162.30.*.221:5236)
- ##服务配置
- [DMHA]
- SWITCH_TIMES=(3)
- SWITCH_INTERVAL=(100)
LOGIN_MODE=(1)
jdbc 连接串:jdbc:dm://DMHA
4、新建用户
在主库的服务器,机器A上进行操作:
/mnt/dm/dmdbms/bin/disql SYSDBA/SYSDBA@localhost:5236
create user dmdba identified by "dmdbda@2025" ;
grant "RESOURCE","PUBLIC","DBA","VTI" to dmdbda;
如果帮助到了你,请关注公众号: