1.集群異常恢復節點方法
1)刪除數據目錄,重做異常節點
2) 通過pg_rewind嘗試修復
對于數據量大的實例,使用方法1將會導致重做時間久,而pg_rewind是通過比較文件差異來拉取文件,適用于數據量較大,變化較小的異常場景恢復。
2.使用pg_rewind前提
1)開啟full_page_writes
2)開啟wal_log_hints或者初始化時開啟checksums
3.具體實現
常用命令:pg_rewind -D /data/pg/data --source-server="hostaddr=127.0.0.1 user=repl port=5432"
pg_rewind是基于源節點和目標節點的分叉點(checkpoint),找到最近的一個一致性位點,并將源節點的wal文件同步過來,目標節點分叉的wal文件刪除,以使得數據達到一致