DM8 主备集群介绍

发布时间:2026/7/27 23:39:04

DM8 主备集群介绍 一、前言本文聚焦四大核心模块整体架构拆解、主备集群分类、守护进程详解、监视器基础、异步备库适用场景带你初步了解集群内容。二、DM8 数据守护整体架构总览2.1 核心原理一句话数据守护Data Watch是达梦原生高可用容灾方案核心逻辑主库产生 REDO 日志通过 MAL 内部通信发给备库备库重演日志实现数据同步硬件故障、机房断电时可快速切换备库对外提供服务相比备份恢复切换仅需几秒保障业务不停机。2.2 五大核心组成部件新手必记主库 备库数据存储与业务载体主库读写备库只读MAL 通信系统TCP 长连接负责主备、守护、监视器之间消息、日志传输守护进程 dmwatcher每台库配套集群 “管家”监控 转发 故障处理监视器 dmmonitor集群 “控制台”管理员操作入口负责故障仲裁归档系统日志传输基础分实时、即时、异步、同步四类归档。数据流主库业务操作生成 REDO→MAL 发送日志→备库本地归档 重演状态流数据库定时上报状态给本地守护进程所有守护汇总信息上报监视器管理员在监视器下发切换、接管命令。2.3 两个关键模式区分Primary 主库模式正常读写所有 DML/DDL 生成 REDO 日志不能直接改表空间文件Standby 备库模式仅支持查询、备份禁止写操作通过重演日志和主保持一致。 切换 SQLMount 状态执行ALTER DATABASE PRIMARY; ALTER DATABASE STANDBY;三、主备集群分类与适用场景数据守护主备分四大类型实时主备、读写分离、同步备、异步备。3.1 实时主备归档类型REALTIME 实时归档写入联机日志前先发日志给备库同步逻辑主库必须收到备库接收确认才会落地本地日志确保数据无丢失优势数据零丢失、支持自动故障切换短板跨机房、网络延迟高时会拖慢主库提交性能适用金融、交易等对数据一致性零容忍业务。3.2 读写分离集群即时 TIMELY 归档归档主库写完本地日志再发给备库特性JDBC 等驱动自动分流读请求到备库分摊主库压力两种模式事务一致备重演完日志才回复主查询无延迟性能损耗高性能收到日志立即回复读存在微小延迟适用报表、查询量大的业务系统。3.3 同步备库SYNC 归档主库本地归档完成后再发送日志备库故障不会让主库挂起适合不能容忍主库卡顿、但允许少量数据延迟的场景不支持切换为主库一般作为辅助容灾节点。3.4 异步备库3.4.1 核心特点不靠业务实时推送由定时器定时扫描本地归档批量发送日志数据存在明显时间差延迟可自定义定点重演不参与故障自动接管不能切换成生产主库仅用于数据统计、历史归档备份、异地离线容灾支持级联实时备库再挂载异步备库减轻主库压力多源支持一套异步备库可同时接收多套主备集群日志。3.4.2 典型使用场景离线数据仓库、月度报表不需要实时数据异地机房冷备主机房故障后做数据兜底历史数据归档不占用生产主备资源。四、守护进程 dmwatcher集群核心管家4.1 基础定位每一个数据库实例必须配套独立 dmwatcher数据库和监视器不能直接通信所有状态、指令全部经过守护进程中转是集群运转核心没有守护进程就无法实现自动切换、故障自愈等操作。4.2 五大核心功能本地实例监控定时检测数据库进程、状态、LSN 日志同步进度实例异常可自动拉起跨节点消息转发把本地库状态同步给其他机器守护汇总上报监视器故障自动处理备库宕机自动将归档置为无效不阻塞主库备库恢复自动拉取缺失归档同步数据主库故障配合确认监视器触发自动接管执行监视器指令接收 switchover正常切换、takeover故障接管命令修改数据库模式 / 状态防脑裂控制记录集群分裂状态dmwatcher.ctl 控制文件避免双主同时写入。4.3 守护两大类型GLOBAL 全局守护实时 / 读写 / MPP 主备必备支持主备切换、故障接管LOCAL 本地守护仅监控本地库不参与集群仲裁异步备库固定使用该类型。4.4 两种切换模式dmwatcher.ini 配置 DW_MODEAUTO 自动切换必须部署确认监视器主库宕机自动选备接管适合 7*24 无中断业务MANUAL 手动切换无自动接管主故障需人工在监视器执行 takeover适合测试、非核心系统。4.5 守护常用控制台命令启动 dmwatcher 后直接输入status查看当前守护运行状态、OGUID、集群模式show打印本地库模式、状态、日志同步 LSNshow link查看所有 MAL 通信链路是否正常exit关闭当前守护进程。五、监视器 dmmonitor集群操作控制台5.1 核心作用全局可视化监控汇总所有主备、守护状态一键查看集群的情况管理员操作入口下发切换、启动、停止集群指令自动切换仲裁核心确认监视器防止网络抖动误判故障避免脑裂双主。5.2 监视器两种类型普通监视器MON_DW_CONFIRM0仅查看集群状态、手动执行切换无自动仲裁自动切换集群不能单独用确认监视器MON_DW_CONFIRM1自动切换集群强制要求主库故障时校验多节点状态确认无误才触发备库接管杜绝脑裂支持多实例 RAFT 集群部署防止监视器单点故障。5.3 监视器命令登录后login 输入 SYSDBA 账号执行tip一键检测集群整体是否正常有无分裂、异常实例show global info全局概览所有库模式、状态、归档是否有效choose switchover查询哪些备可以正常切换主库正常维护使用switchover 实例名主备平滑切换业务无中断choose takeover主库故障时查询可接管备库takeover 实例名故障备接管成为新主show arch send info查看主到备日志同步进度排查延迟exit退出监视器。5.4 监视器启动方式# 进入达梦bin目录执行 ./dmmonitor /dmdata/dmmonitor.ini六、数据守护核心配置文件搭建集群需要 5 个核心 inidm.ini数据库基础开启 MAL_INI1、ARCH_INI1ALTER_MODE_STATUS0禁止手动乱改主备模式防止脑裂dmmal.iniMAL 通信配置所有主备内容完全一致记录各节点 IP、MAL 端口dmarch.ini归档配置区分实时 / 异步 / 同步归档目标dmwatcher.ini守护配置定义组名、OGUID、切换模式、守护类型dmmonitor.ini监视器配置填写集群 OGUID、所有守护 IP 端口区分确认 / 普通模式。OGUID 小知识同一集群所有库、守护、监视器必须统一 OGUID相当于集群唯一身份证不一致无法互通。七、日常运维核心流程7.1 集群正常切换switchover主库无故障停机维护、版本升级使用监视器执行choose switchover查看合法备库执行switchover 备库实例名自动同步剩余日志互换主备角色业务连接自动切换。7.2 主库硬件故障接管takeover主库服务器宕机无法恢复choose takeover筛选数据一致备库takeover 备实例名将备库升为主库原主修复重启后守护自动识别转为备库重新同步。7.3 异步备库日常维护定时检查定时器 dmtimer.ini 是否正常通过show arch send info查看归档同步延迟定点重演设置异步备库仅同步到指定时间用于复盘历史数据。八、注意自动切换集群没部署确认监视器主库故障不会自动接管多节点 OGUID 不一致守护、监视器互相连不上 手动修改数据库 Primary/Standby没改 dmwatcher 配置引发脑裂异步备库配置 GLOBAL 全局守护启动守护直接报错MAL.ini 主备配置不一致日志传输中断归档变为 Invalid跨机房实时备库网络延迟高导致主库提交卡顿改用异步备库做异地容灾。九、结尾总结本次学习覆盖 DM8 V4.0 数据守护四大核心整体架构、主备分类、守护进程、监视器、异步备库理清每个组件分工与适用场景。 简单复盘主备集群承载业务分实时 / 读写 / 异步四类按需选择dmwatcher集群底层管家监控 故障处理dmmonitor管理员操作台自动切换必备确认监视器异步备库离线容灾不参与线上高可用切换。

相关新闻