0

我们最近通过Postgres 文档中描述为 Log-Shipping Standby Servers 的方法,为我们的 postgres (9.0.4) DB 服务器实现了高可用性。一切似乎都很好并且工作正常,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

我将不胜感激任何提示...

4

1 回答 1

1

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

于 2013-09-26T14:16:41.937 回答