2017年4月11日 星期二

Point-In-Time Recovery


  • 在做Point-In-Time Recovery時設定的還原時間點,必須在備份完成之後的時間。舉例來說,今天早上8:00進行備份,到早上10:00完成備份,則還原時間點必須設定在10:00之後。如果設定在8:00~10:00之間,那些部分還沒備份完成的資料,就會從上一次的備份進行還原(recover),變得很麻煩。
練習 (DML操作記得commit,這樣紀錄才會寫進redo log)

備份
  1. RMAN> backup as backupset database spfile;
  2. 2017/4/12 早上09:00:00 完成備份
事件
  1. Insert幾筆資料至Table - 2017/4/12 早上10:00:00
  2. Drop Table - 2017/4/12 早上11:00:00
老闆: 哪個笨蛋把TABLE刪了?我10點輸入的資料都不見了! MIS! MIS!快給我處理一下

還原
  1. SQL> shutdown immediate;
  2. SQL> startup mount;
  3. RMAN> restore database;
  4. 恢復至TABLE刪除之前
    RMAN> recover database until time "to_date('04 12 2017 10:50:00','MM DD YYYYHH24:MI:SS' )";
  5. SQL> alter database open resetlogs;
要注意的是Point-In-Time就像是回到過去的某個時間點,所以在那時間點之後的事都會丟失。就像The Flash回到過去一樣,會開出一條新的時間軸(Incranation),因此必須評估是否值得這樣做,如果只是回復小事情可以用Flashback功能。

沒有留言:

張貼留言