Oracle數(shù)據(jù)庫RMAN不完全恢復(fù)之基于時(shí)間恢復(fù)
Oracle數(shù)據(jù)庫RMAN不完全恢復(fù)之基于時(shí)間恢復(fù)的相關(guān)知識(shí)是本文我們主要要介紹的內(nèi)容,需要注意的是RMAN不完全恢復(fù)只適用于archivelog模式,只能在mount狀態(tài)下完成?;跁r(shí)間恢復(fù)是指當(dāng)出現(xiàn)用戶錯(cuò)誤(例如誤刪除表、誤截?cái)啾恚r(shí),恢復(fù)到指定時(shí)間點(diǎn)的恢復(fù)。
示例:
模擬誤截?cái)啾韙_user。
在終端設(shè)置環(huán)境變量nls_date_format指定日期時(shí)間格式。
執(zhí)行RMAN,啟動(dòng)數(shù)據(jù)庫到mount狀態(tài)。
使用set until time命令指定要恢復(fù)到的時(shí)間點(diǎn)。
轉(zhuǎn)儲(chǔ)、恢復(fù)數(shù)據(jù)庫,并使用resetlogs選項(xiàng)打開數(shù)據(jù)庫。
--模擬誤截?cái)啾韙_user。
- SQL> host date
- 2011年 08月 29日 星期一 21:01:29 CST
- SQL> truncate table t_user;
- Table truncated.
--在終端設(shè)置環(huán)境變量nls_date_format指定日期時(shí)間格式。
- [oracle@localhost ~]$ export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
--恢復(fù)
- [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> }
--已恢復(fù)
- SQL> conn sys/oracle@oralife as sysdba
- Connected.
- SQL> select count(*) from t_user;
- COUNT(*)
- ----------
- 2
在實(shí)際環(huán)境下,應(yīng)該使用LogMiner確定誤操作時(shí)間點(diǎn)。
在執(zhí)行了不完全恢復(fù)之后,推薦刪除早期所有備份,重新備份數(shù)據(jù)庫。如:
- run {
- delete noprompt backup;
- delete noprompt copy;
- backup database format='/oracle/10g/oracle/RMAN/%d_%s.dbf';
- sql 'alter system archive log current';
- }
以上就是Oracle數(shù)據(jù)庫RMAN不完全恢復(fù)之基于時(shí)間恢復(fù)的實(shí)例的全部內(nèi)容,本文我們就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】