达梦数据库守护进程脑裂问题处理

脑裂是同一个守护进程组中同时出现两个或者多个活动主库,并且这些主库都接收用户请求,提供完整数据库服务。一旦发生脑裂,将无法保证数据一致性,对数据安全造成严重
后果。造成脑裂的主要原因有两个:网络不稳定或错误的人工干预。为了避免出现脑裂,
1. 设置 dm.ini 参数 ALTER_MODE_STATUS=0,限制用户进行直接通过 SQL 修改数据库模式、状态以及 OGUID。
2. 提供稳定、可靠的网络环境。
3. 配置自动切换数据守护时,将确认监视器部署在独立的第三方机器上,不要与某一个数据库实例部署在一起,避免由于网络问题触发自动故障切换,导致脑裂发生。
4. 通过人工干预,将备库切换为主库之前,一定要确认主库已经发生故障,避免主库活动情况下,备库强制接管,人为造成脑裂。
如下图所示出现两个主库

 

将守护进程关闭及实例服务都关闭,以正常的主库全量备份,其他两个数据库使用该备份文件还原,并以mount方式启动,将有问题的那个主库改为备库模式,重启守护进程

 

 如上图所示,备份还原之后,主备库lsn还是不一致,两备库还是mount状态,输入tip查看

 

 提示发生分裂,需要手工干预,但实际上都已处理,需要将备库的dmwatcher.ctl 文件删除,重启守护进程ok

 

 

 

 

posted @   fangzpa  阅读(544)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示