数据守护集群(一主一从)

配置数据守护集群(一主一从)

在主库上脱机备份

./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

切换成功

原文地址:https://www.cnblogs.com/hong-yf/p/14762897.html