程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數據庫RMAN不完全恢復之基於時間恢復

Oracle數據庫RMAN不完全恢復之基於時間恢復

編輯:Oracle數據庫基礎

Oracle數據庫RMAN不完全恢復基於時間恢復的相關知識是本文我們主要要介紹的內容,需要注意的是RMAN不完全恢復只適用於archivelog模式,只能在mount狀態下完成。基於時間恢復是指當出現用戶錯誤(例如誤刪除表、誤截斷表)時,恢復到指定時間點的恢復。

示例:

模擬誤截斷表t_user。

在終端設置環境變量nls_date_format指定日期時間格式。

執行RMAN,啟動數據庫到mount狀態。

使用set until time命令指定要恢復到的時間點。

轉儲、恢復數據庫,並使用resetlogs選項打開數據庫。

--模擬誤截斷表t_user。   

  1. SQL> host date    
  2. 2011年 08月 29日 星期一 21:01:29 CST    
  3. SQL> truncate table t_user;    
  4. Table truncated.   

--在終端設置環境變量nls_date_format指定日期時間格式。   

  1. [Oracle@localhost ~]$ export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'  

--恢復   

  1. [oracle@localhost ~]$ RMAN target sys/Oracle@oralife nocatalog    
  2. RMAN> run {    
  3. 2> startup force mount;    
  4. 3> set until time='2011-08-29 21:01:00';    
  5. 4> restore database;    
  6. 5> recover database;    
  7. 6> sql 'alter database open resetlogs';    
  8. 7> }   

--已恢復   

  1. SQL> conn sys/Oracle@oralife as sysdba    
  2. Connected.    
  3. SQL> select count(*) from t_user;    
  4. COUNT(*)    
  5. ----------     
  6. 2  

在實際環境下,應該使用LogMiner確定誤操作時間點。

在執行了不完全恢復之後,推薦刪除早期所有備份,重新備份數據庫。如:

  1. run {  
  2.  delete noprompt backup;  
  3.  delete noprompt copy;  
  4.  backup database format='/oracle/10g/Oracle/RMAN/%d_%s.dbf';  
  5.  sql 'alter system archive log current';  
  6.  } 

以上就是Oracle數據庫RMAN不完全恢復之基於時間恢復的實例的全部內容,本文我們就介紹到這裡了,希望本次的介紹能夠對您有所收獲!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved