一、高可用架构设计
数据库的高可用是生产环境的刚需。达梦DM8提供多种高可用方案:数据守护(DW)、读写分离(DMRWC)、共享存储(DSC)。其中数据守护是最常用的双机热备方案,主库故障时备库自动接管,RPO=0,RTO小于30秒。
二、数据守护架构原理
-
主库:提供读写服务,实时同步日志到备库
-
备库:接收主库日志并恢复,可选实时同步
-
监视器:监控主备状态,故障时发起切换
-
守护进程:管理日志同步和状态切换
三、环境准备
# 节点规划 # 主库:192.168.1.10 # 备库:192.168.1.11 # 监视器:192.168.1.12 # 确保时钟同步 ntpdate -u ntp.aliyun.com
四、主库配置
4.1 启用归档
# dm.ini 中设置 ARCH_INI = 1 MAL_INI = 1 # dmarch.ini [ARCHIVE_REALTIME] ARCH_TYPE = REALTIME ARCH_DEST = DM8_SLAVE [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dm/arch
4.2 MAL系统配置
# dmmal.ini [MAL_INST1] MAL_INST_NAME = DM8_MASTER MAL_HOST = 192.168.1.10 MAL_PORT = 5536 MAL_INST_HOST = 192.168.1.10 MAL_INST_PORT = 5236 [MAL_INST2] MAL_INST_NAME = DM8_SLAVE MAL_HOST = 192.168.1.11 MAL_PORT = 5536 MAL_INST_HOST = 192.168.1.11 MAL_INST_PORT = 5236
五、启动集群
# 1. 主库启动 systemctl start DmServiceDMSERVER disql SYSDBA/SYSDBA SQL> SP_SET_OGUID(45321); SQL> ALTER DATABASE PRIMARY; # 2. 备库启动 systemctl start DmServiceDMSERVER disql SYSDBA/SYSDBA SQL> SP_SET_OGUID(45321); SQL> ALTER DATABASE STANDBY; # 3. 启动守护进程 systemctl start DmWatcherServiceDMSERVER # 4. 监视器执行 ./dmmonitor /dm/data/DAMENG/dmmonitor.ini show
六、故障切换
手动切换
# 监视器中执行 switchover DM8_MASTER.DM8_SLAVE
故障自动切换
# 模拟主库宕机 systemctl stop DmServiceDMSERVER # 监视器自动检测并切换
七、日常运维
# 查看集群状态 show # 查看同步延迟 SELECT DATEDIFF(SECOND, MAX(create_time), SYSDATE) FROM v$arch_status; # 定期备份 ./dmrman CTLSTMT="BACKUP DATABASE '/dm/data/DAMENG/dm.ini' FULL"
八、注意事项
-
主备库配置保持一致,避免切换后性能降级
-
网络延迟不要超过10ms
-
监视器最好部署在第三台服务器
-
每季度至少做一次切换演练
九、总结
达梦DM8的数据守护方案成熟可靠,搭建过程与Oracle DataGuard高度相似。关键是要做好初始化参数配置和切换演练,确保故障发生时切换流程顺畅。