fbpx

EDB-Point 即時資料恢復功能與設定

EDB Point In Time Recovery

資料庫的備份還原機制是必須的,但是總不可能在每個時段做全備份的動作,所以當資料庫必須回復到某一個時間點時,就必須借助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筆資料時間即可

10.完成

相關文章