一、测试说明
测试1:搭建【DMDSC+实时备机】作为前置环境,修改相关配置文件,变成【DMDSC+异步备机】,测试集群是否可以正常启动。
测试2:搭建【DMDSC+2实时备机】作为前置环境,修改相关配置文件,变成【DMDSC+实时备机+异步备机】,测试集群是否可以正常启动。
前置环境布置可参考以下资料:
二、正常启动
正常启动时各主机及监视器截图如下:
【DSC1】
【DSC2】
【EP01】
【dmcssm】
【dmmonitor】
三、测试流程
1.正常停步骤
(1) 先exit退出dmmonitor
(2) 关闭实时备机和DMDSC的数据守护
(3) 关闭实时备机的dmserver
(4) 通过dmcssm关闭DMDSC的dmserver
(5) 通过dmcssm关闭DMDSC的dmasmsvr
(6) 再exit退出dmcssm
(7) 关闭DMDSC的dmcss
正常停时各主机截图如下:
【DSC1】
【DSC2】
【EP01】
2.修改配置文件
(1) 修改dmarch.ini,增加异步归档
【DSC1】
ARCH_LOCAL_SHARE = 1 ARCH_LOCAL_SHARE_CHECK = 0 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = +DMDATA/data/DSC/dsc1/arch_async ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 0 [ARCHIVE_REMOTE] ARCH_TYPE = REMOTE ARCH_DEST = DSC2 ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 0 ARCH_INCOMING_PATH = +DMDATA/data/DSC/dsc2/arch_async [ARCHIVE_ASYNC] ARCH_TYPE = ASYNC ARCH_DEST = EP01 ARCH_TIMER_NAME = RT_TIMER ARCH_SEND_DELAY = 1 |
【DSC2】
ARCH_LOCAL_SHARE = 1 ARCH_LOCAL_SHARE_CHECK=0 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = +DMDATA/data/DSC/dsc2/arch_async ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 0 [ARCHIVE_REMOTE] ARCH_TYPE = REMOTE ARCH_DEST = DSC1 ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 0 ARCH_INCOMING_PATH = +DMDATA/data/DSC/dsc1/arch_async [ARCHIVE_ASYNC] ARCH_TYPE = ASYNC ARCH_DEST = EP01 ARCH_TIMER_NAME = RT_TIMER ARCH_SEND_DELAY = 1 |
【EP01】
[ARCHIVE_LOACL1] ARCH_TYPE = LOCAL ARCH_DEST = /dm/dmarch_async ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 0 |
(2) EP01修改dmwatcher.ini,改为本地守护 DW_TYPE=LOCAL
[GRP1] DW_TYPE = LOCAL #本地守护类型 DW_MODE = MANUAL #手动切换模式 DW_ERROR_TIME = 10 #远程守护进程故障认定时间 INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 INST_ERROR_TIME = 10 #本地实例故障认定时间 INST_OGUID = 453331 #守护系统唯一 OGUID 值 INST_INI = /dm/dmdata/EP01/DAMENG/dm.ini # dm.ini 配置文件路径 INST_AUTO_RESTART = 0 #关闭实例的自动启动功能 INST_STARTUP_CMD = /dm/dmdbms/bin/dmserver #命令行方式启动 RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭 RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭 |
(3) DMDSC修改dm.ini中的参数TIMER_INI = 1
(4) DSC1和DSC2增加dmtimer.ini
[RT_TIMER] #和 dmarch.ini 中的 ARCH_TIMER_NAME 一致 TYPE = 2 FREQ_MONTH_WEEK_INTERVAL = 1 FREQ_SUB_INTERVAL = 0 FREQ_MINUTE_INTERVAL = 0 START_TIME = 11:20:00 END_TIME = 11:21:00 DURING_START_DATE = 2022-10-21 10:00:00 DURING_END_DATE = 9999-12-31 23:59:59 NO_END_DATE_FLAG = 1 DESCRIBE = RT TIMER IS_VALID = 1 |
3.尝试启动
(1) 测试1:DMDSC+实时备机 → 修改配置文件 → DMDSC+异步备机
【DSC1&DSC2】
换前台方式启动,报错没有配置实时归档或即时归档
【EP01】
(2) 测试2:DMDSC+2实时备机 → 修改配置文件 → DMDSC+实时备机+异步备机
【DSC1】 & 【DSC2】
【EP01】 & 【EP02】
【DMDSC+2实时备机搭建成功时dmmonitor截图】
【DMDSC+实时备机+异步备机搭建成功时dmmonitor截图】
测试集群可用性以及定时器有效:
【dmtimer.ini】
[RT_TIMER] #和 dmarch.ini 中的 ARCH_TIMER_NAME 一致 TYPE = 2 FREQ_MONTH_WEEK_INTERVAL = 1 FREQ_SUB_INTERVAL = 0 FREQ_MINUTE_INTERVAL = 0 START_TIME = 18:25:00 END_TIME = 18:26:00 DURING_START_DATE = 2022-10-21 10:00:00 DURING_END_DATE = 9999-12-31 23:59:59 NO_END_DATE_FLAG = 1 DESCRIBE = RT TIMER IS_VALID = 1 |
【DSC1】
【DSC2】
【EP01】
【EP02】
四、结果分析
测试1: DMDSC+实时备机 → 修改配置文件 → DMDSC+异步备机 无法成功
【DMDSC+异步备机】属于多源配置同一个异步备库,在测试过程中dmarch.ini没有配置REALTIME和TIMELY归档,所以无法搭建成功。
测试2: DMDSC+2实时备机 → 修改配置文件 → DMDSC+实时备机+异步备机 成功
在测试过程中,在EP01的dmarch.ini文件中加入异步归档,并将EP02的配置文件修改为异步备机的相关配置文件,其中dmarch.ini中还保留有实时备机EP01配置REALTIME归档,所以可以通过修改配置文件,将实时备机改为异步备机。
根本原因:未配置REALTIME和TIMELY归档的库,不能配置同一个异步备库。
——《DM8数据守护与读写分离集群V4.0》 2.8 异步备库
总结
本文测试通过修改相关配置文件是否可以将达梦数据库的 DMDSC+实时备机 改变成 DMDSC+异步备机 集群。测试证明,未配置REALTIME和TIMELY归档的库,不能配置同一个异步备库。如果文中有误,欢迎指出,大家共同交流进步!
更多达梦技术资讯,请访问达梦技术社区:
达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台