EDB-Point 即時資料恢復功能與設定
內容目錄
Toggle
資料庫的備份還原機制是必須的,但是總不可能在每個時段做全備份的動作,所以當資料庫必須回復到某一個時間點時,就必須借助PITR(Point-In-Time-Recovery)功能,PITR 在PostgreSQL或EDB都是內建功能,以下就來驗證PITR功能:
1.設定環境變數(使用root建立database需要的資料夾)
#mkdir -p /tmp/backup
#mkdir -p /tmp/archive
#chown -R enterprisedb.enterprisedb /tmp/backup
#chown -R enterprisedb.enterprisedb /tmp/archive
2.更改資料庫設定檔(postgresql.conf),啟動 archive mode。
wal_level = archive
archive_mode = on
archive_command = ‘test ! -f /tmp/archive/%f && cp %p /tmp/archive/%f’
3.重新啟動資料庫服務
#service ppas-9.4 restart
4.建立測試資料表
#edb-psql -U labuser test
edb=#create table lab_table(id number,col varchar2(100));
edb=#\q
5.資料庫完整備份(fullybackup)
$pg_basebackup -D /tmp/backup -Ft -z -U enterprisedb -p 5444
6.確認完整備份時間(T1)
edb=#select now();
7.新增100筆資料
edb=#insert into lab_table values (generate_series(1,100),’###’);
8.確認異動時間(T2)
edb=#select now();
9.回復至T1時間的資料(此時只有建立好的資料表,無資料)
- 資料庫crash
- 將資料庫完整備份檔回復到database的目錄
- 建立並設定conf檔,並可以指定回復時間點
restore_command = ‘cp /tmp/archive/%f %p’
recovery_target_time = ‘2015-01-01 00:00:00
- 啟動資料庫服務
- 確認lab_table資料為0筆
- 若想回復至100筆資料,只需重複以上步驟並且在3的時間設定為100筆資料時間即可