Postgresql
PostgreSQL 9.6 pg_rewind - 需要很長時間才能複制
我使用流式複制,複製工作正常。兩台伺服器是 HA 和 PostgreSQL DB 被複製。DB中的數據大約40G。當發生故障轉移時,slave成功提升為master,master變為slave,並嘗試複製新的master數據。但是,從新的主伺服器複製數據需要很長時間。(使用 pg_rewind / 成功 / 38G - 6 分鐘)。
如果還有其他節省時間的方法,請告訴我。
這是我執行的命令:
pg_rewind --target-pgdata="targetdir" --source-server="sourceserver"
這是輸出:
connected to server servers diverged at WAL position 35/DD0D2260 on timeline 37 rewinding from last common checkpoint at 35/DC4E94F8 on timeline 37 reading source file list reading target file list reading WAL in target need to copy 39193 MB (total source directory size is 77268 MB) 698400/40134372 kB (1%) copied
pg_rewind
連接到新的 master 並找到它與舊 master 共享的最新檢查點。然後它檢查本地 WAL 以找到所有已被修改的塊,並從新的 master 複製這些塊。所以這個過程很慢,如果
- 很久以前就升級了,所以
pg_rewind
要翻很多WAL文件或者
- 自促銷以來,許多街區都發生了變化
從輸出中
pg_rewind
可以明顯看出,自從升級從站後,數據庫集群中的一半塊已經被修改。所以問題是你在升職後等了太久。故障轉移後立即pg_rewind
會快得多。