1. 环境准备与切换前“体检”
大家好,我是老张,在数据库运维这行摸爬滚打十几年了,国产数据库从起步到成熟,一路跟过来踩过不少坑,也积累了一些实战心得。今天咱们不聊虚的,就手把手聊聊达梦数据库(DM)集群里那个让人又爱又怕的操作——主备节点切换。说它“爱”,是因为这是保障业务高可用的核心技能;说它“怕”,是万一操作不当,分分钟就是一次生产事故。别担心,跟着我的步骤走,咱们把每一步都掰开揉碎了讲,让你不仅能“会操作”,更能“懂原理”,心里有底。
在动手切换之前,准备工作做得好不好,直接决定了你是“优雅切换”还是“深夜救火”。我见过太多同行,一上来就照着命令敲,结果环境没对齐,切换过程卡在半路,急得满头大汗。所以,咱们第一步,先给集群做个全面的“体检”。
首先,你得确保整个集群是健康的。 这就像给病人动手术前,得先确认他生命体征平稳。怎么确认呢?最直观的方法,就是登录到每一个数据库节点上,用达梦的管理工具 disql 连上去看看。比如,在主节点上,你可以执行 select * from v$instance; 看看实例状态是不是 OPEN,再执行 select * from v$database; 看看数据库是不是 MOUNT 状态。备节点上,除了看实例状态,关键要看它的归档和应用状态是否正常。你可以用 select arch_mode from v$database; 确认归档已开启,再用 select applied_seq from v$archived_log where applied='Y' order by seq desc limit 1; 这类查询,看看备库是否已经追上了主库的日志。理想情况下,主备之间的日志差距(GAP)应该为0或一个很小的值。
其次,检查监视器的配置,这是切换的“指挥中心”。 达梦集群的切换,尤其是计划内的平滑切换,强烈依赖手动监视器(dmmonitor)。你需要找到 dmmonitor.ini 这个配置文件。我习惯把它放在一个独立的、有足够磁盘空间的目录下,比如 /dm8/tools/monitor/。用 dmdba 用户打开它,找到 MON_DW_CONFIRM 这个参数,必须确保它被设置为 0。这个参数如果设为1,就是自动确认模式,在一些复杂的切换场景下可能会带来意想不到的确认延迟或问题。设置为0,意味着所有切换确认都需要我们手动介入,虽然多了一步操作,但绝对更可控、更安全。这是我踩过坑后的血泪经验:把控制权牢牢抓在自己手里。
最后,别忘了检查网络和资源。 主备节点之间的网络链路是否稳定、延迟是否在可接受范围内?共享存储(如果有的话)的挂载状态是否正常?目标备节点是否有足够的CPU、内存资源来承担未来主库的负载?这些看似基础的问题,往往在关键时刻成为“绊脚石”。我建议在计划切换前,用一个简单的脚本在节点间互 ping 大包,或者用 scp 传输一个大文件,粗略评估一下网络质量。
2. 启动“指挥中心”:手动监视器详解
环境体检通过,咱们就可以请出这次切换操作的“总指挥”——手动监视器了。很多新手容易混淆自动监视器和手动监视器,这里我多啰嗦两句。自动监视器更像一个“自动驾驶”模式,在故障发生时自动触发切换,但过程不透明,不利于我们做计划内的维护。而手动监视器,就是我们今天要用的,它提供了一个交互式的命令行界面,让我们能像将军指挥作战一样,清晰地看到战场(集群)态势,并一步步下达切换指令。
启动监视器的命令很简单,但细节决定成败。首先,切换到 dmdba 用户,这是达梦数据库的默认管理用户,权限和属主都配置好了,能避免很多权限错误。然后,进入到你的 dmmonitor.ini 配置文件所在的目录。
su - dmdba
cd /dm8/tools/monitor/
dmmonitor dmmonitor.ini
执行 dmmonitor dmmonitor.ini 后,如果配置正确,你会看到一个以 D


268

被折叠的 条评论
为什么被折叠?



