PostgreSQL 通過歸檔日志定期增量同步數據


通過歸檔日志定期增量同步數據實驗:

一、再次實驗從歸檔持續同步的方式:
1.修改主庫,開啟歸檔,將日志歸檔到從庫:
archive_mode = on
archive_command = 'ssh 192.168.5.133 test ! -f /home/kingbase/test_fy/archive/%f && scp %p 192.168.5.133:/home/kingbase/test_fy/archive/%f'
wal_keep_segments = 1024
max_wal_senders = 8

2.備庫需要從主庫拉取全量備份:
pg_basebackup -D ./data -R -h 192.168.5.132 -p 54328 -U SYSTEM -w

3.備庫recovery.conf文件:
restore_command = 'cp /home/kingbase/test_fy/archive/%f %p'
standby_mode = on

這種方法是同步的,當備庫需要的日志沒有時,會一直提示:
LOG: restored log file "00000001000000000000004E" from archive
cp: cannot stat `/home/kingbase/test_fy/archive/00000001000000000000004F': No such file or directory
cp: cannot stat `/home/kingbase/test_fy/archive/00000001000000000000004F': No such file or directory
cp: cannot stat `/home/kingbase/test_fy/archive/00000001000000000000004F': No such file or directory
cp: cannot stat `/home/kingbase/test_fy/archive/00000001000000000000004F': No such file or directory


二、在一的基礎上,定期拷貝wal文件
1.關閉歸檔,並重啟數據庫:
2.產生新的數據,並拷貝到從庫歸檔路徑:
scp /home/kingbase/test_fy/data/sys_xlog/* 192.168.5.133:/home/kingbase/test_fy/archive/

3.從庫數據庫會從歸檔目錄中獲取到增量的日志並回放
cp: cannot stat `/home/kingbase/test_fy/archive/000000010000000000000050': No such file or directory
cp: cannot stat `/home/kingbase/test_fy/archive/000000010000000000000050': No such file or directory
cp: cannot stat `/home/kingbase/test_fy/archive/000000010000000000000050': No such file or directory
cp: cannot stat `/home/kingbase/test_fy/archive/000000010000000000000050': No such file or directory
cp: cannot stat `/home/kingbase/test_fy/archive/000000010000000000000050': No such file or directory
LOG: restored log file "000000010000000000000050" from archive
LOG: restored log file "000000010000000000000051" from archive
LOG: restored log file "000000010000000000000052" from archive

三、結論:
通過日志文件拷貝的方式,可以實現增量數據的交換和同步

備注:
1)wal日志拷貝可以從主庫歸檔目錄中獲取。
2)拷貝完成的wal日志,可以從歸檔中刪除。例如,寫一個腳本,同步前一天的數據,並刪除。
3)備庫始終是只讀的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM