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