我已成功运行流复制,并希望在主服务器和从服务器之间进行监控。我知道我可以得到两个值:
master: select pg_current_xlog_location()
standby: select pg_last_xlog_receive_location()
但是我不知道如何处理由两者返回的十六进制值。这是以字节为单位的大小吗?我该如何计算差异?那差异告诉我什么?
谢谢
答案 0 :(得分:4)
如果pg_current_xlog_location()
为您提供类似64/A8EB6C20
的值,则表示您的xlog位置为64A8EB6C20十六进制,实际上是一个字节数。要计算差异,您可以减去这两个值。 (由于奇怪的历史原因,该序列中的某些值被跳过,但只要您只比较相等,就可以了。)
在PostgreSQL 9.2中,您可以使用函数pg_xlog_location_diff
为您完成所有这些。
这些数字是什么意思?它们是预写日志流量。实际上,它大约是您写入数据库的数据量。您需要运行您的应用程序,并了解您的设置可以维护的值以及适当的延迟。