postgresql 沒有類似mysql 的二進位制日誌, 但是有和mysql 類似的redo log,並且有mysql 沒有的redo 歸檔功能。當然redo 的歸檔已經mariadb 和percona-mysql 已經實現。
那我們就利用pgsql的redo 歸檔,也叫wal來實現增量備份。
假設我們已經做了乙個物理的全備,並且相應的引數都已經設定完畢,比如以下:
/home/full_backup 儲存全備的目錄。
/home/increment_log 儲存增備的目錄。
進入postgresql.conf
開啟wal.
wal_level = archive
wal_keep_segments=1
開啟wal 的歸檔模式.
archive_mode = on
archive_command = 'test ! -f /home/increment_log/%f && cp %p /home/increment_log/%f' (歸檔,也就是增量)
那麼關於wal歸檔日誌要注意的一點是,如果crash 掉了,那麼沒有歸檔的xlog也可能沒有提交到資料檔案,所以有可能這部分資料會丟失掉。所以在之後恢復的時候我們要把這部分xlog拷貝到全備的對應目錄。
恢復方法:
1. 確保沒有任何業務對pg服務進行訪問。(有可能這個時候pg已經crash掉了。)
2. 先停掉postgresql 服務。
3. cd /home/pgsql;
4. mv data data_old
6. cp -rfp /home/full_backup/* /home/pgsql (拷貝全備)
7. cp -rfp data_old/pg_xlog/000* data/pg_xlog/ (這裡是拷貝自從最後乙個增量和系統crash之間的xlog到對應的目錄。)
8. cd data
9. vi recovery.conf (新增recovery.conf檔案,讓pg認為這次是在恢復。)
restore_command='test ! -f /home/increment_log/%f && cp /home/increment_log/%f %p'
recovery_target_timeline = 'latest'
10. chown -r postgres.postgres recovery.conf
11. 啟動postgresql 服務即可。
如果正確恢復了,那麼recovery.conf 會自動更名為recovery.done.
以我的機器為例,我的版本是9.3,pg_xlog中看到的backup 資訊:
[root@postgresql-instance pg_xlog]# cat 000000010000000000000003.00000028.backup
start wal location: 0/3000028 (file 000000010000000000000003)
stop wal location: 0/30000b8 (file 000000010000000000000003)
checkpoint location: 0/3000028
backup method: pg_start_backup
backup from: master
start time: 2014-01-07 03:35:02 est
label: ytt
stop time: 2014-01-07 03:36:27 est
日誌中會看到恢復如下恢復資訊:
< 2014-01-07 05:02:47.361 est >log: 00000: starting archive recovery
< 2014-01-07 05:02:47.361 est >location: startupxlog, xlog.c:4983
< 2014-01-07 05:02:47.369 est >log: 00000: redo starts at 0/3000028
< 2014-01-07 05:02:47.369 est >location: startupxlog, xlog.c:5531
< 2014-01-07 05:02:47.371 est >log: 00000: consistent recovery state reached at 0/303fc88
增量備份 差異備份 增量備份的區別?
特點 占用空間大,備份速度慢,但恢復時一次恢復到位,恢復速度快。相當於機械人把地板打掃乾淨了,你踩過,就會有腳印 增加標記 下次機械人就把腳 印記錄下來,並且把腳印打掃乾淨 清除標記 始終保持地板乾淨。機械人每次記錄並打 掃的腳印就相當於每次增量備份的內容 以備份體積小,備份速度快,但是恢復的時候,...
全備份 增量備份 差異備份和永久增量備份
在本文中你將學到 全備份 增量備份和差異備份,以及一些新型的備份方式,例如合成備份和永久增量備份。你還將學習到如何為你公司的資料選擇最佳的資料備份型別。在相當長一段時間,主要有三種基本的備份方式 全備份,增量備份和差異備份。最近,儘管資料備份軟體廠商已經推出了一些新型別的備份方式,但是你可能對此不熟...
全備份 增量備份 差異備份和永久增量備份
在本文中你將學到 全備份 增量備份和差異備份,以及一些新型的備份方式,例如合成備份和永久增量備份。你還將學習到如何為你公司的資料選擇最佳的資料備份型別。在相當長一段時間,主要有三種基本的備份方式 全備份,增量備份和差異備份。最近,儘管資料備份軟體廠商已經推出了一些新型別的備份方式,但是你可能對此不熟...