暂无图片
在PG中,repmgr能否实现:当standby落后于primary时,或者落后多少多少时,主库出现故障,不会进行autofailover
我来答
分享
暂无图片 匿名用户
在PG中,repmgr能否实现:当standby落后于primary时,或者落后多少多少时,主库出现故障,不会进行autofailover

请教一个问题,repmgr能否实现:当standby落后于primary时,或者落后多少多少时,主库出现故障,不会进行autofailover

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
everything

repmgr确实可以实现这种功能。这是通过配置复制延迟检查来实现的。以下是具体的实现方法:

1. 复制延迟检查

repmgr提供了一个名为replication_lag_critical的参数。当备库的复制延迟超过这个阈值时,repmgr会认为该备库不适合进行故障转移。

2. 配置方法

repmgr.conf文件中,设置以下参数:

failover=automatic
promote_command='/usr/bin/repmgr standby promote -f /etc/repmgr.conf --log-to-file'
follow_command='/usr/bin/repmgr standby follow -f /etc/repmgr.conf --log-to-file --upstream-node-id=%n'
replication_lag_critical=300   # 单位是秒,这里设置为5分钟

3. 工作原理

  • 当主库出现故障时,repmgr会检查所有可用的备库。
  • 对于每个备库,它会检查复制延迟是否超过replication_lag_critical设定的值。
  • 如果所有备库的复制延迟都超过了这个阈值,repmgr将不会执行自动故障转移。

4. 监控和日志

  • repmgr会记录这种情况,你可以在日志中看到相关信息。
  • 使用repmgr cluster show命令来查看各个节点的状态,包括复制延迟。

5. 注意事项

  • 设置适当的replication_lag_critical值很重要。太小可能导致不必要的故障转移被阻止,太大则可能允许数据不一致的节点成为新的主库。
  • 定期监控和测试你的配置是很重要的,以确保它在实际故障情况下能按预期工作。

通过这种配置,你可以确保只有当备库与主库数据足够同步时,才会进行自动故障转移,从而降低数据丢失的风险。

在repmgr.conf文件中,你可以设置以下参数:

failover=automatic
promote_command=’/usr/bin/repmgr standby promote -f /etc/repmgr.conf --log-to-file’
follow_command=’/usr/bin/repmgr standby follow -f /etc/repmgr.conf --log-to-file --upstream-node-id=%n’
replication_lag_critical=300 # 单位是秒,这里设置为5分钟
工作原理:

当主库出现故障时,repmgr会检查所有可用的备库。
对于每个备库,它会检查复制延迟是否超过replication_lag_critical设定的值。
如果所有备库的复制延迟都超过了这个阈值,repmgr将不会执行自动故障转移。
监控和日志:

repmgr会记录这种情况,你可以在日志中看到相关信息。
你也可以使用repmgr cluster show命令来查看各个节点的状态,包括复制延迟。
注意事项:

设置适当的replication_lag_critical值很重要。太小可能导致不必要的故障转移被阻止,太大则可能允许数据不一致的节点成为新的主库。
定期监控和测试你的配置是很重要的,以确保它在实际故障情况下能按预期工作。
通过这种配置,你可以确保只有当备库与主库数据足够同步时,才会进行自动故障转移,从而降低数据丢失的风险。

暂无图片 评论
暂无图片 有用 1
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏