我们最近通过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
我将不胜感激任何提示...