配置数据守护集群(一主一从)
在主库上脱机备份
./dmrman CTLSTMT="backup database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' full to backup20201126 backupset '/home/dmdba/dmdbms/data/backup20201126'"
发送给备库
[dmdba@DaMeng bin]$ scp -r /home/dmdba/dmdbms/data/backup20201126/ dmbda@192.168.138.130:/home/dmdba/dmdbms/data/
在备库上脱机还原恢复
还原:
./dmrman ctlstmt="restore database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/data/backup20201126'"
恢复:
./dmrman ctlstmt="recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/data/backup20201126'"
更新:
./dmrman ctlstmt="recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' update db_magic"
配置主库DMSERVER
配置dm.ini
这里没有涉及到具体的业务,所以不进行调优具体参数如下
INSTANCE_NAME=DMSERVER
COMPATIBLE_MODE=2
ARCH_INI=1
MAL_INI=1
ALTER_MODE_STATUS= 0
ENABLE_OFFLINE_TS = 2
配置dmmal.ini
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DMSERVER
MAL_HOST = 192.168.138.199
MAL_PORT = 61141
MAL_INST_HOST = 192.168.138.199
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = DMSERVER01
MAL_HOST = 192.168.138.130
MAL_PORT = 61142
MAL_INST_HOST = 192.168.138.130
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142
配置dmarch.ini
[ARCHIVE_TIMELY1]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSERVER01 #写出了本机之外的实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/arch # 本地的存档地址
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 0
配置dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /home/dmdba/dmdbms/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
发送配置给备库
配置备库参数
dm.ini
如果路径一样修改实例名就可以了,不一样还要改实例名
dmarch.ini
把将ARCH_DEST参数修改为除自己外的库,这里只有两个库,所以改成主库的名字就行了
配置OGUID
主库:
#以mount模式开启主库
./dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount
#登录disql,修改OGUID
sp_set_oguid(453331);
#修改数据库模式
alter database primary;
备库:
#以mount模式开启备库
./dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount
#登录disql,修改OGUID
sp_set_oguid(453331);
#修改数据库模式
alter database standby;
注册服务
在root账户下对主备进行dmwatcher服务注册
./dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini -p DM
配置监听器
路径配在备库的/home/dmdba/dmdbms/data/dmmonitor.ini
MON_DW_Confirm = 1 #0是非确认监视器(不可以自动切换主备)1相反
MON_LOG_PATH = /home/dmdba/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.138.199:52141
MON_DW_IP = 192.168.138.130:52142
注意MON_DW_IP最后配的不是实例的端口,而是前面dmmal.ini配置的MAL_DW_PORT端口!!此前就是配错了而导致反复报错。
启动主备机的守护进程
主机:
./dmwatcher /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini
备机:
启动监视器
[dmbda@Dameng bin]$ ./dmmonitor /home/dmdba/dmdbms/data/dmmonitor.ini
测试
1、建表和插入数据备机是否能及时同步,并可查询到数据
主库建表并插入数据:
查看备库:
2、制造主机故障,测试备机可接管并持续提供服务。
主机关机,备机成为主机,尝试添加数据
可以插入
3、恢复故障主机,将故障主机加入集群。
恢复主机:
4、手动切换主备集群,恢复原主备集群的位置。
switchover GRP1.DMSERVER
切换成功