Oracle數據庫RMAN不完全恢復之基於時間恢復的相關知識是本文我們主要要介紹的內容,需要注意的是RMAN不完全恢復只適用於archivelog模式,只能在mount狀態下完成。基於時間恢復是指當出現用戶錯誤(例如誤刪除表、誤截斷表)時,恢復到指定時間點的恢復。
示例:
模擬誤截斷表t_user。
在終端設置環境變量nls_date_format指定日期時間格式。
執行RMAN,啟動數據庫到mount狀態。
使用set until time命令指定要恢復到的時間點。
轉儲、恢復數據庫,並使用resetlogs選項打開數據庫。
--模擬誤截斷表t_user。
- SQL> host date
- 2011年 08月 29日 星期一 21:01:29 CST
- SQL> truncate table t_user;
- Table truncated.
--在終端設置環境變量nls_date_format指定日期時間格式。
- [Oracle@localhost ~]$ export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
--恢復
- [oracle@localhost ~]$ RMAN target sys/Oracle@oralife nocatalog
- RMAN> run {
- 2> startup force mount;
- 3> set until time='2011-08-29 21:01:00';
- 4> restore database;
- 5> recover database;
- 6> sql 'alter database open resetlogs';
- 7> }
--已恢復
- SQL> conn sys/Oracle@oralife as sysdba
- Connected.
- SQL> select count(*) from t_user;
- COUNT(*)
- ----------
- 2
在實際環境下,應該使用LogMiner確定誤操作時間點。
在執行了不完全恢復之後,推薦刪除早期所有備份,重新備份數據庫。如:
- run {
- delete noprompt backup;
- delete noprompt copy;
- backup database format='/oracle/10g/Oracle/RMAN/%d_%s.dbf';
- sql 'alter system archive log current';
- }
以上就是Oracle數據庫RMAN不完全恢復之基於時間恢復的實例的全部內容,本文我們就介紹到這裡了,希望本次的介紹能夠對您有所收獲!