我已经成功地运行了流复制,并希望在主节点和从节点之间进行监控。我知道可以在每个节点上获取两个值:
master: select pg_current_xlog_location()
standby: select pg_last_xlog_receive_location()
然而,我不确定该如何处理任一返回的十六进制值。这是以字节为单位的大小吗?如何计算差异?那么这种差异告诉了我什么呢?
谢谢
我已经成功地运行了流复制,并希望在主节点和从节点之间进行监控。我知道可以在每个节点上获取两个值:
master: select pg_current_xlog_location()
standby: select pg_last_xlog_receive_location()
然而,我不确定该如何处理任一返回的十六进制值。这是以字节为单位的大小吗?如何计算差异?那么这种差异告诉了我什么呢?
谢谢
pg_current_xlog_location()
返回的值是64/A8EB6C20
,那么你的xlog位置就是64A8EB6C20十六进制,这实际上是一个字节号。要计算差异,可以减去这两个值。(由于某些奇怪的历史原因,该序列中跳过了某些值,但只要进行相等比较,就不会出问题。)pg_xlog_location_diff
来完成所有这些工作。