Postgresql

PostgreSQL:pg_rewind 抱怨 wal_log_hints = on not been set,它是

  • March 28, 2019

我對 pg 比較陌生,所以請多多包涵。

我已經設置了兩台主機並在兩台主機上都安裝了 pg10。然後我在它們之間配置了日誌流複製。這工作得很好。

我想測試故障轉移,所以我在 Primary 上停止了 postgresql 服務並在 Standby 上創建觸發器文件,這也有效。我檢查了一下,我的待機不再處於恢復模式。

現在我想將舊的主節點恢復為新的備用節點。我嘗試使用 pg_rewind 但它給了我以下錯誤消息

/usr/lib/postgresql/10/bin/pg_rewind --target-pgdata=/var/lib/postgresql/10/main --source-server="host=server2ip port=5432 user=postgres"

target server needs to use either data checksums or "wal_log_hints = on"
Failure, exiting

wal_log_hints = on在兩台伺服器上都設置了。

任何人都可以幫我弄清楚如何讓它工作。

以下是我在兩台伺服器上的設置。主節點失敗之前的複制效果很好。

以下是我在 postgresql .conf 中更改的行

listen_addresses = '*'
max_connections = 200
tcp_keepalives_idle = 60
tcp_keepalives_interval = 10
tcp_keepalives_count = 5
wal_level = replica
wal_log_hints = on
archive_mode = on
archive_command = '/bin/true'
max_wal_senders = 5
wal_keep_segments = 5000
max_replication_slots = 5
effective_cache_size = 2GB

我還在 pg_hba.conf 文件中添加了以下幾行

host    all             postgres        server1ip/24        trust
host    all             postgres        server2ip/24        trust

最後我創建瞭如下的 recovery.conf 文件。

standby_mode          = 'on'
primary_conninfo      = 'host=sciontsdbbc01 port=5432 user=replicate password=rep-password'
trigger_file = '/tmp/PG_MasterNow'

我在兩台伺服器上都設置了 wal_log_hints = 。

但是想必是設置的太晚了,也就是在生成後至少有一些WAL文件參與rewind(在pg_wal目錄中)。

引用自:https://dba.stackexchange.com/questions/233350