更新时间:2026-07-28 GMT+08:00
DN仲裁
CM支持的DN仲裁模式主要分为Quorum模式和DCF模式,默认模式为Quorum模式。
Quorum模式DN仲裁选主流程,如下图所示:
- DN主实例故障(心跳超时6s/进程Down/磁盘故障/端口故障/僵死)。
- CM检测到无主,即开始给正常节点发送lock1命令尝试锁住备DN。如果Redo回放完并且主备通信断开,则lock1成功,DN会处于prohibit_connection状态,此时DN不再接受新日志且本地日志已回放完,CM可以获取到DN的本地日志最大值。
- 从锁住的多数派备DN中,选择本地日志最大的备DN,并通知该备DN升主。
- CM通知CN更新pgxc_node,pgxc_node中包含着主DN的路由信息,CN通过pgxc_node来连接DN主。
- CM发起lock2命令给备DN,lock2命令包含新主DN的路由信息,备DN可以连接新主。
- CM发起unlock解锁,让主备DN恢复默认的自由连接状态。
- 更新ETCD中的主备关系,1是Primary,2是Standby。
- 服务恢复。
图1 Quorum模式DN仲裁选主流程
多AZ场景下,DN主故障处理原则:
DN主故障,依次优先选择用户初始指定、数据最新、原主同AZ备、AZ优先级最大(安装时配置)的DN备升主。主恢复,其角色降备,不自动回切为主,可以手动回切。如果原主的日志能够追上新主,则进行日志追赶;如果追不上,则在原主上进行数据全量重建。
父主题: 仲裁原理