1、环境描述
操作系统:redhat 7.5
两节点实时主备集群+一个异步节点
前提:主备集群已经搭好,增加一个异步节点,如果主备环境已经处于运行状态,先将主备库环境停止。
异步备库支持多源配置,目的是在实时或即时主备环境中,当主备库切换或者主库故障 时,备库接管以后可以继续向同一个异步备库同步数据,因此如果主库配置了异步备库,在 所有备库上也需要配置相同的异步备库,备库只有在切换为主库时才会向其同步数据。
2、节点信息
实例名 | IP地址 |
---|---|
DM1 | 192.168.111.11 |
DM2 | 192.168.111.22 |
DM3(异步节点) | 192.168.111.55 |
3、搭建步骤
3.1、数据准备
从主库备份全部数据并复制到第三个节点进行还原:
1)、从主库备份数据
[dmdba@localhost DAMENG]$ cd /opt/dmdbms/bin
[dmdba@localhost bin]$ ./dmrman CTLSTMT="BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/opt/dmdbms/data/BACKUP_FILE_01'"
dmrman V8
BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/opt/dmdbms/data/BACKUP_FILE_01'
file dm.key not found, use default license!
Database mode = 1, oguid = 453331
begin redo pwr log collect, last ckpt lsn: 83666 ...
redo pwr log collect finished
EP[0]'s cur_lsn[83666]
Processing backupset /opt/dmdbms/data/BACKUP_FILE_01
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]
backup successfully!
time used: 00:00:01.129
[dmdba@localhost bin]$ scp -r /opt/dmdbms/data/BACKUP_FILE_01 dmdba@192.168.111.55:/opt/dmdbms/data/
dmdba@192.168.111.55's password:
BACKUP_FILE_01.bak 100% 16MB 103.8MB/s 00:00
BACKUP_FILE_01.meta 100% 77KB 9.7MB/s 00:00
2)、异步节点还原
[dmdba@localhost ~]$ cd /opt/dmdbms/bin
[dmdba@localhost bin]$ ./dmrman CTLSTMT="RESTORE DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdbms/data/BACKUP_FILE_01'"
dmrman V8
RESTORE DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdbms/data/BACKUP_FILE_01'
file dm.key not found, use default license!
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]
restore successfully.
time used: 455.660(ms)
[dmdba@localhost bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdbms/data/BACKUP_FILE_01'"
dmrman V8
RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdbms/data/BACKUP_FILE_01'
file dm.key not found, use default license!
Database mode = 1, oguid = 453331
EP[0]'s cur_lsn[83666]
备份集[/opt/dmdbms/data/BACKUP_FILE_01]备份过程中未产生日志
recover successfully!
time used: 261.507(ms)
[dmdba@localhost bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
dmrman V8
RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC
file dm.key not found, use default license!
Database mode = 1, oguid = 453331
EP[0]'s cur_lsn[83666]
recover successfully!
time used: 00:00:01.012
3.2、原实时主备库两个节点文件配置
1)、配置原主备库的dm.ini文件
#配置有异步归档时,打开定时器,定时同步归档到异备库
TIMER_INI= 1
2)、配置主备库的dmmal.ini文件
在主备库配置的基础上增加以下内容:
[MAL_INST3]
MAL_INST_NAME = DM3
MAL_HOST = 192.168.111.55
MAL_PORT = 5136
MAL_INST_HOST = 192.168.111.55
MAL_INST_PORT = 5236
MAL_DW_PORT = 5336
MAL_INST_DW_PORT = 5436
3)、配置主备库的dmarch.ini文件
在已经配置好的主备库基础上增加以下内容:
[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC
ARCH_DEST = DM3
ARCH_TIMER_NAME = RT_TIMER
4)、配置主备库dmtimer.ini文件
用于定时触发实例发送归档日志到异步备库。
定时器配置为每天 00:00:00 触发主库发送归档日志到异步备库,可根据实际情况进行调整。
[RT_TIMER]
TYPE = 2
FREQ_MONTH_WEEK_INTERVAL = 1
FREQ_SUB_INTERVAL = 0
FREQ_MINUTE_INTERVAL = 0
START_TIME = 00:00:00
END_TIME = 00:00:00
DURING_START_DATE = 2021-03-01 00:00:00
DURING_END_DATE = 9999-12-31 23:59:59
NO_END_DATE_FLAG = 1
DESCRIBE = RT_TIMER
IS_VALID = 1
3.3、新增异步节点文件配置
1)、配置dm.ini文件
INSTANCE_NAME = DM3
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
2)、配置dmmal.ini文件
从其他节点复制一个即可。
3)、配置dmarch.ini文件
配置为本地归档即可
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dmdbms/data/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 1280
4)、配置dmwatcher.ini文件
[GRP1]
DW_TYPE = LOCAL
DW_MODE = MANUAL
DW_ERROR_TIME = 5
INST_RECOVER_TIME = 5
INST_ERROR_TIME = 5
INST_OGUID = 453331
INST_INI = /opt/dmdbms/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /opt/dmdbms/dmdbms/bin/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
5)、启动异步备库并修改该节点状态
[dmdba@localhost bin]$ ./dmserver /opt/dmdbms/data/DAMENG/dm.ini mount
[dmdba@localhost DAMENG]$ cd /opt/dmdbms/bin
[dmdba@localhost bin]$ ./disql
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 20.309(毫秒). 执行号:0.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 2.559(毫秒). 执行号:1.
SQL> ALTER DATABASE STANDBY;
操作已执行
已用时间: 2.562(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 4.409(毫秒). 执行号:4.
6)、配置监视器
在监视器中增加新增节点的IP地址和端口号。
文件内容如下:
MON_DW_Confirm = 1
MON_LOG_PATH = /opt/dmdbms/data
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 1024
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.111.11:5336
MON_DW_IP = 192.168.111.22:5336
MON_DW_IP = 192.168.111.55:5336
7)、注册数据库服务和守护服务
[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /opt/dmdbms/data/DAMENG/dm.ini -p DM3 -m mount
[root@localhost root]# ./dm_service_installer.sh -t dmwatcher -watcher_ini /opt/dmdbms/data/DAMENG/dmwatcher.ini -p DM3
3.4、启动主备库守护据服务和守护服务以及异步守护服务
cd /opt/dmdbms/bin
./DmServiceDM1 start
./DmServiceDM2 start
./DmServiceDM3 start
./DmWatcherServiceDM1 start
./DmWatcherServiceDM2 start
./DmWatcherServiceDM3 start
3.5、从监视器查看状态
监视器显示各个节点正常,配置完成!