更新时间:2026-07-28 GMT+08:00
分享

DN仲裁

CM支持的DN仲裁模式主要分为Quorum模式和DCF模式,默认模式为Quorum模式

Quorum模式DN仲裁选主流程,如下图所示:

  1. DN主实例故障(心跳超时6s/进程Down/磁盘故障/端口故障/僵死)。
  2. CM检测到无主,即开始给正常节点发送lock1命令尝试锁住备DN。如果Redo回放完并且主备通信断开,则lock1成功,DN会处于prohibit_connection状态,此时DN不再接受新日志且本地日志已回放完,CM可以获取到DN的本地日志最大值。
  3. 从锁住的多数派备DN中,选择本地日志最大的备DN,并通知该备DN升主。
  4. CM通知CN更新pgxc_node,pgxc_node中包含着主DN的路由信息,CN通过pgxc_node来连接DN主。
  5. CM发起lock2命令给备DN,lock2命令包含新主DN的路由信息,备DN可以连接新主。
  6. CM发起unlock解锁,让主备DN恢复默认的自由连接状态。
  7. 更新ETCD中的主备关系,1是Primary,2是Standby。
  8. 服务恢复。
图1 Quorum模式DN仲裁选主流程

多AZ场景下,DN主故障处理原则:

DN主故障,依次优先选择用户初始指定、数据最新、原主同AZ备、AZ优先级最大(安装时配置)的DN备升主。主恢复,其角色降备,不自动回切为主,可以手动回切。如果原主的日志能够追上新主,则进行日志追赶;如果追不上,则在原主上进行数据全量重建。

相关文档