Postgresql
如何在 Postgres 中每小時進行一次增量備份?
嘗試對單個 Postgres 伺服器 (Win7 64) 進行每小時增量備份。
我有以下設置
postgresql.conf
:max_wal_senders = 2 wal_level = archive archive_mode = on archive_command = 'copy "%p" "c:\\postgres\\foo\\%f"'
(重新開始)
我做了一個基礎備份
pg_basebackup -U postgres -D ..\foo -F t -x
它在文件夾中創建了一個大
base.tar
文件foo
並添加了一些 16,384 KB 的文件,我認為這些文件是 WAL。我不明白的是為什麼 WAL
foo
沒有改變。變化中的 WALdata/pg_xlog
。pg 不應該複製它們嗎?它是如何決定這樣做的?也許我需要設置
archive_timeout=3600
?我見過幾個網站(pg 的郵件列表、bacula 的 postgres 頁面)說您需要呼叫 pg_start_backup() 和 pg_stop_backup(),但我相信這些不是必需的。真的嗎?
次要問題:
- WAL 多久
data/pg_xlog
寫一次?什麼觸發了寫入?
\q
如果我在 psql 中執行一些 DML,它似乎會更新 WAL 。或者在 pgAdmin 中編輯一個表,然後關閉視窗。我認為它會在送出時寫入。 2. 最佳實踐?pg_basebackup 每週一次?將 WAL 歸檔到與 PG 或遠端機器相同的機器上?
您想要將存檔文件夾增量備份到遠端儲存。
如果您需要從備份中恢復,基本情況是您需要基本備份作為起點,並需要存檔文件夾的全部內容來重播起點和崩潰之間發生的事務活動。
此外,為了避免存檔文件夾中的文件永遠堆積,您希望不時進行新的基礎備份並刪除在新基礎備份之前存檔的文件。