Postgresql复制监控计算

时间:2013-01-03 17:39:04

标签: postgresql postgresql-9.1

我已成功运行流复制,并希望在主服务器和从服务器之间进行监控。我知道我可以得到两个值:

 master:    select pg_current_xlog_location()
 standby:   select pg_last_xlog_receive_location()

但是我不知道如何处理由两者返回的十六进制值。这是以字节为单位的大小吗?我该如何计算差异?那差异告诉我什么?

谢谢

1 个答案:

答案 0 :(得分:4)

如果pg_current_xlog_location()为您提供类似64/A8EB6C20的值,则表示您的xlog位置为64A8EB6C20十六进制,实际上是一个字节数。要计算差异,您可以减去这两个值。 (由于奇怪的历史原因,该序列中的某些值被跳过,但只要您只比较相等,就可以了。)

在PostgreSQL 9.2中,您可以使用函数pg_xlog_location_diff为您完成所有这些。

这些数字是什么意思?它们是预写日志流量。实际上,它大约是您写入数据库的数据量。您需要运行您的应用程序,并了解您的设置可以维护的值以及适当的延迟。