发布时间:2026/8/11 21:02:55
三节点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/8/11 21:02:55

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

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

2026/8/11 21:02:55

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

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

2026/8/11 21:57:58

Android投屏实战指南:专业级图形化控制方案深度解析

Android投屏实战指南:专业级图形化控制方案深度解析 【免费下载链接】escrcpy 📱 Display and control your Android device graphically with scrcpy. 项目地址: https://gitcode.com/GitHub_Trending/es/escrcpy Escrcpy是一款基于Scrcpy核心的…

2026/8/11 21:57:58

ASTM D4169模拟运输测试等级怎么选?简单对号入座

一、三个保证等级核心区别ASTM D4169 划分 I、II、III 三档测试强度,数字越小,测试严苛程度越高,核心逻辑:货物运输风险越高,对应选用更高标准等级。I 级:最高强度,模拟运输中低概率、高破坏力的…

2026/8/11 21:57:58

嵌入式面试总结(四)——资源受限分析

一、前言在嵌入式系统开发中,“资源受限”是一个核心且高频的面试话题。面试官通过此类问题,不仅考察候选人对硬件资源的理解深度,更评估其在有限条件下进行系统设计、代码优化和问题解决的实际能力。本文旨在系统梳理与“资源受限”相关的面…

2026/8/11 21:57:58

嵌入式面试总结(二)——嵌入式系统可靠性

一、引言 在嵌入式系统开发中,可靠性是衡量系统质量的核心指标之一,尤其在工业控制、汽车电子、医疗设备等关键领域,系统失效可能导致严重后果。在面试中,对可靠性的考察往往聚焦于设计原则、故障分析与解决能力,而非…

2026/8/11 3:03:40

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 5:34:14

当 LLM 遇见大文档:主流开源项目如何处理上下文超限

从 Agentic Loop 到 Repo Map,七种策略与六类陷阱引言:128K vs 10MB 的硬冲突 2026 年的 LLM 上下文窗口已达到 128K ~ 1M token(≈ 0.5MB ~ 4MB 文本),但 LLM 想要处理的真实数据规模远远超过这个量级:真实…

2026/8/11 0:00:39

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:39

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/10 11:20:30

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/11 17:06:59

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/11 3:05:11

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…