Postgres HA - 热备用服务器滞后

时间:2013-09-25 23:53:36

标签: database postgresql backup high-availability log-shipping

我们最近通过Postgres documentation中描述为Log-Shipping Standby Servers的方法为我们的postgres(9.0.4)数据库服务器实现了高可用性。一切似乎都很好并且正常工作,WAL文件正在运送并且正在被备用服务器摄取,但我们在主机和从机之间经验滞后。滞后时间约为2小时,这是不可接受的。

这种滞后的原因是什么?除了postgres服务器之外,该机器没有运行其他任何东西,尽管与生产服务器相比它使用较慢的硬盘驱动器。如何检查磁盘I / O是否导致问题?

如果我检查服务器上正在运行的进程,我会看到正在恢复最新WAL文件的postgres启动进程和逐步摄取存档WAL的pg_standby实用程序之间的持续战斗。启动过程是否一直在运行?

ps示例:

postgres  1422  0.0  1.0 13061220 131568 ?     S    Sep20   0:01 /usr/pgsql-9.0/bin/postmaster -p 5433 -D /data/pgsql_5433/data
postgres  1431  0.0  0.0 176928   512 ?        Ss   Sep20   0:12 postgres: logger process
postgres  1432 70.5 72.0 13068604 8775544 ?    Ss   Sep20 5744:15 postgres: startup process   waiting for 000000010000181F00000016
postgres  1437  0.2 70.4 13068336 8582736 ?    Ss   Sep20  22:50 postgres: writer process
postgres 32199  0.0  0.0   4064   484 ?        S    01:46   0:00 /usr/pgsql-9.0/bin/pg_standby -l -t/data/pgsql_5433/trigger /data/pgsql_5433/psql_wal_import 000000010000181F00000016 pg_xlog/RECOVERYXLOG 000000010000181E00000051

我很感激任何提示......

1 个答案:

答案 0 :(得分:1)

很可能你的WAL需要很长时间才能填满。您可以调整超时以强制它在它满之前切换。这将显着增加网络流量,但会在发送日志之前为您提供最长时间。您可以查看文档here