2013-09-25 32 views
0

我們最近通過Postgres documentation中描述爲日誌傳送備用服務器的方法爲我們的postgres(9.0.4)數據庫服務器實現了高可用性。一切似乎都很好,工作正常,WAL文件正在出貨,正在被備用服務器佔用,但我們在主從機器之間的經驗滯後。滯後時間約爲2小時,這是不可接受的。Postgres HA - 熱備用服務器滯後

這可能是什麼原因滯後?該機器除了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

最新補丁是9.0.13版本,你是7個補丁/ 2年後。查看發行說明以查看是否有與複製相關的內容。 –

回答

1

最有可能您的WAL需要很長的時間來填補。您可以調整超時以強制在超時前進行切換。這會顯着增加網絡流量,但會在日誌發送完之前給您一個最長時間。您可以檢查文檔here