三节点AFC集群搭建操作指南

发布时间:2026/10/3 19:54:21

三节点AFC集群搭建操作指南 一、 前言什么是 AFC达梦自治容灾集群DM Autonomous Failover Cluster简称 DM AFC是基于 Raft 一致性协议构建的强一致性、高可用数据库集群。与传统的“主备守护集群”不同AFC 不需要依赖外部的守护进程节点之间通过 Raft 算法**自动选举 Leader**能够容忍 (N-1)/2 个节点故障例如 3 副本可容忍 1 个节点故障且具备**数据零丢失、自动主备切换**的能力。本篇文章记录了一次在**共享的国产化 ARM 服务器鲲鹏 920银河麒麟 V10** 上从零搭建 3 副本 AFC 集群的完整测试过程。整个搭建过程遵循 **“不修改环境变量、不影响其他用户、不破坏系统配置”** 的原则通过绕开各种环境冲突成功让集群运行起来。二、 基础概念与环境规划1.核心术语**Raft 归档**核心同步方式要求**奇数个副本**3、5、7、9。**主库Leader**唯一处理读写请求的节点。**备库Follower**同步并重演日志提供只读查询参与主库选举。**Learner 副本**新节点加入时的过渡状态只接收日志不参与选举和日志提交。**影子副本**不含数据的特殊副本仅参与投票和查询用于节省存储空间本次测试未涉及。2.三机规划本次测试使用内部网段 10.36.25.x 的三台物理服务器。**31 号机器 (T01)**数据库端口 15231XMAL 通信端口 11031选举优先RAFT_VOTE_INTERVAL3000。**32 号机器 (T02)**数据库端口 15232XMAL 通信端口 11032选举次优先RAFT_VOTE_INTERVAL4000。**33 号机器 (T03)**数据库端口 15233XMAL 通信端口 11033选举延迟RAFT_VOTE_INTERVAL5000。*数据目录统一规划为/dmdata/xuboshi/afc_test/T0X/DAMENG。*三、 搭建前的“环境排雷战”### ⚠️ 避坑点 1安装包架构选错这台服务器 CPU 是 aarch64鲲鹏 ARM千万不能使用 x86 架构的 ISO 安装包。必须下载 dm8_2026xxxx_arm_kylin10_sp1_64.iso 版本否则 DMInstall.bin 将无法执行。### ⚠️ 避坑点 2旧版本达梦的环境污染因为服务器是多人共享的机器上存在旧版本的达梦如 /dmdata/lx/dm5_65/bin。旧版本达梦的库路径被写死在了二进制文件的 RPATH 中。**现象**直接使用绝对路径执行新版 dmrman 时会报 undefined symbol: utl_analyse_para_fun。**绕过方法**直接 cd 进新版本的 /bin 目录使用 ./dmrman利用当前目录的库即可完美避开环境冲突。### ⚠️ 避坑点 3多人机器残留的 dmap 进程干扰33 号机器上残留了多个其他用户启动的旧版 dmap 进程。新版本的 dmrman 执行脱机还原时默认会去连系统 dmap 的 4236 端口导致报错 DM[-141]:Can not connect to incompatible dmap。**绕过方法**达梦 dmrman 提供了 USE_AP2 参数意为“**使用自身进程执行完全不依赖外部的 dmap 进程**”。加入此参数后无论系统里有多少其他进程都不会再干扰。四、 AFC 三副本集群搭建实操实操版Step 1三节点数据库初始化在 31、32、33 三台机器分别执行 dminit 初始化。这里设置 LOG_SIZE256联机日志 256MB减小体积。bash# 以 31 号机器为例/dmdata/xuboshi/opt/dmdbms/bin/dminit PATH/dmdata/xuboshi/afc_test/T01 PORT_NUM15231 INSTANCE_NAMET01 SYSDBA_PWDDameng123 SYSAUDITOR_PWDDameng123 LOG_SIZE256Step 2配置 dm.ini 开启归档并限制资源在三台机器 DAMENG/dm.ini 末尾追加或修改iniARCH_INI 1ALTER_MODE_STATUS 0BUFFER 50MAX_BUFFER 100Step 331 号节点备份与分发进入新版 bin 目录脱机备份 T01然后通过 scp 把备份推送给 T02 和 T03。bashcd /dmdata/xuboshi/opt/dmdbms/bin./dmrman USE_AP2 CTLSTMTBACKUP DATABASE /dmdata/xuboshi/afc_test/T01/DAMENG/dm.ini FULL TO BACKUP_T01 BACKUPSET /dmdata/xuboshi/afc_test/T01/DAMENG/BACKUP_T01# 推送备份到另外两台机器scp -r /dmdata/xuboshi/afc_test/T01/DAMENG/BACKUP_T01 dmdba10.36.25.32:/dmdata/xuboshi/afc_test/T02/DAMENG/scp -r /dmdata/xuboshi/afc_test/T01/DAMENG/BACKUP_T01 dmdba10.36.25.33:/dmdata/xuboshi/afc_test/T03/DAMENG/Step 432、33 节点还原巧妙使用 USE_AP2 避开干扰在 32、33 机器上同样切到新版本 bin 目录使用 USE_AP2 进行脱机还原和魔数恢复。bashcd /dmdata/xuboshi/opt/dmdbms/bin./dmrman USE_AP2 CTLSTMTRESTORE DATABASE /dmdata/xuboshi/afc_test/T02/DAMENG/dm.ini FROM BACKUPSET /dmdata/xuboshi/afc_test/T02/DAMENG/BACKUP_T01./dmrman USE_AP2 CTLSTMTRECOVER DATABASE /dmdata/xuboshi/afc_test/T02/DAMENG/dm.ini UPDATE DB_MAGICStep 5核心配置 dmarch.ini三节点分别独立写入**这是最核心的一步注意 ARCH_DEST_ID 必须对应对方的 RAFT_SELF_ID **以 **32号机器T02** 的配置为例其它节点只需修改 XMAL_IP、PORT、SELF_ID 和 VOTE_INTERVAL。iniXMAL_HB_INTERVAL 5RAFT_HB_INTERVAL 150RAFT_VOTE_INTERVAL 4000 # T01是3000, T03是5000XMAL_IP 10.36.25.32XMAL_PORT 11032RAFT_SELF_ID 2[ARCHIVE_RAFT1]ARCH_TYPE RAFTARCH_DEST T01ARCH_DEST_IP 10.36.25.31ARCH_DEST_PORT 11031ARCH_DEST_ID 1 # 必须匹配 T01 的 SELF_ID[ARCHIVE_RAFT2]ARCH_TYPE RAFTARCH_DEST T03ARCH_DEST_IP 10.36.25.33ARCH_DEST_PORT 11033ARCH_DEST_ID 3 # 必须匹配 T03 的 SELF_ID[ARCHIVE_LOCAL]ARCH_TYPE LOCALARCH_DEST /dmdata/xuboshi/afc_test/T02/DAMENG/archARCH_FILE_SIZE 64ARCH_SPACE_LIMIT 0Step 6启动三节点见证“自动选主”分别在 3 个 SSH 窗口中以 mount 模式启动 dmserver 进程。bashcd /dmdata/xuboshi/opt/dmdbms/bin./dmserver /dmdata/xuboshi/afc_test/T01/DAMENG/dm.ini mount三台机器启动后Raft 协议会在 5~10 秒内自动完成选举。使用 disql 验证bash./disql sysdba/Dameng123localhost:15231执行SELECT INSTANCE_NAME, RAFT_STAT, SYS_MODE, SYS_STATUS FROM V$GLOBAL_RAFT_INFO;看到 RAFT_STAT 分别为 LEADER 和 FOLLOWER且状态均为 OPEN说明**集群搭建成功**。五、 高可用与强一致测试验证1. 强一致性读写测试在 LEADER 上执行sqlCREATE TABLE test_afc (id int, name varchar(20));INSERT INTO test_afc VALUES (1, dm_afc_test);COMMIT;在 FOLLOWER备库上执行 SELECT * FROM test_afc;不需要任何同步命令**备库能立刻查询到这条数据**证明 Raft 强同步机制生效。2.高可用自动切换测试在 LEADER 节点的 dmserver 前台窗口按下 **Ctrl C** 强制停掉主库等待约 5~10 秒。再次查询 V$GLOBAL_RAFT_INFO会发现**剩下的节点中有一台自动变为了 LEADER**之前建的表数据完好无损实现了“秒级自动故障转移”。3.备库只读限制尝试在 FOLLOWER 上执行 INSERT 语句会提示 备库上只允许执行只读操作符合预期。六、 总结与清理1.学习心得1**奇数副本是铁律**3、5、7、9决不能让节点数变成偶数。2**环境隔离是关键**在公共机器上运行达梦**绝对路径执行**和 **USE_AP2 脱机操作**是解决旧环境污染的神器。3**配置细节定生死**dmarch.ini 中的 ARCH_DEST_ID 必须和对方的 RAFT_SELF_ID 对齐漏掉它或者写错达梦就会抛出 archive_dest can not be self instance 的顽固报错。2.测试环境清除干净无痕由于测试过程没有注册任何系统服务、没有改动全局环境变量清除极其简单1在所有三个前台 dmserver 窗口按 Ctrl C 停掉服务。2执行 rm -rf /dmdata/xuboshi/afc_test 删除整个测试目录。本文原创于达梦技术社区https://eco.dameng.com/达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台达梦数据库产品体验站DM8在线试玩达梦数据库全系列产品免费下载官方权威的快速上手文档和产品手册最活跃的达梦技术社区面向全行业ISV厂商免费的云适配服务。https://eco.dameng.com/
延伸阅读

更多相关文章

2026/9/19 19:22:03

Nintendo Switch自定义固件大气层:5分钟快速安装完整指南

Nintendo Switch自定义固件大气层:5分钟快速安装完整指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 大气层系统(Atmosphere)是当前最受欢迎、功能最…

2026/10/3 5:25:20

值得推荐的申论名师公考机构 按需求选不踩坑

引言:不同备考场景需要不同的机构公考备考圈子里有一个很常见的现象:同一个机构、同一个老师的课,有人听完茅塞顿开申论从60分冲到80分,有人却听得云里雾里感觉收效甚微。问题往往不出在机构本身,而出在备考场景和机构…

2026/10/3 19:50:47

splashboard 2.7.0 Windows x64 下载:终端信息面板 ZIP 备用地址

splashboard 2.7.0 Windows x64 ZIP 下载入口 需要在终端启动时查看项目状态、常用信息或自定义面板,可以了解 splashboard。本文分享固定版本 2.7.0,文件名为 splashboard-v2.7.0-x86_64-pc-windows-msvc.zip,夸克文件列表显示 9.2M&#x…

2026/10/3 19:50:47

历史民俗视频的自动成片实现:从文稿到分镜语义匹配

做历史民俗视频,古代节庆市井画面难找,问题不在“生成”,而在“匹配”。把文稿拆成分镜,按分镜语义匹配纪实素材、用 MG 动画补抽象信息,可以稳定产出非遗科普与史料转视频内容。可借助花生AI这类支持文稿分镜匹配的成…

2026/10/3 19:50:47

后端开发必备的10个技术栈,缺一不可

面试官问一个候选人:“你项目里用了线程池,corePoolSize和maxPoolSize是怎么设置的?”候选人愣了三秒,说“一般默认就行吧”。2026年的后端面试,画风已经彻底变了——不是不考基础,而是不考“孤立的基础”&…

2026/10/3 19:50:47

零基础吃透AI数字人(小白也能快速上手)

资料获取:https://pan.xunlei.com/s/VP1Ysd9GdnO-8tPxFPrQSRTkA1?pwd5fbz#1. 什么是AI数字人AI数字人,简单来说,就是利用人工智能技术生成的、具有人类外观和交互能力的虚拟形象。它可以是2D平面形象,也可以是3D立体形象&#xf…

2026/10/3 19:50:47

双门两路锁四摄-售货机硬件形态的软件建模

03-双门两路锁四摄-售货机硬件形态的软件建模作者:黒漂技术佬|系列:URM Ultra 方案理念与架构篇前两篇我们聊了全景和需求翻译。这一篇要把镜头推到最近——盯着那台柜子看。 新手写物联网系统最容易犯的错,是把设备当成一个"…

2026/10/2 8:16:46

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/10/2 18:20:53

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/3 15:02:19

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/3 0:04:31

国内大学生必备的AI写作辅助软件是哪款?

国内高校学生在论文写作过程中,越来越依赖AI辅助工具提升效率,主流方案以本土化全流程工具为核心,结合通用大模型与专业插件,覆盖选题构思、框架搭建、初稿撰写、查重降重、格式调整等关键环节,本文将深入解析当前主流…

2026/10/3 0:04:31

Codex接入Jev模型完整指南:配置方法、本地部署与踩坑排查

最近不少人在讨论 Codex 搭配 Jev 这套玩法,我一开始没太当回事,直到自己把 Jev 接进 Codex跑了几轮编码任务之后,才明白那些说“直接起飞”的人是怎么想的。Codex 作为工具本身已经够能打了,但模型固定、上下文策略固定&#xff…

2026/10/3 0:04:31

GitHub 热门: NVIDIA/Model-Optimizer

👋 Hi,我擅长 AI 大模型应用落地、意识解码与 AI 开发工具链 。 💡 创业路上,用技术换时间,一起把 AI 变成生产力 🚀 >GitHub 热门: NVIDIA/Model-Optimizer 凌晨两点,你刚把跑通了的 Qwen3.…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑