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

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

編輯:Oracle數據庫基礎

基於SCN恢復是指當出現用戶錯誤(例如誤刪除表、誤截斷表)時,恢復到指定SCN點的恢復。

模擬誤刪除表t_user。

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

使用set until scn命令指定要恢復到的scn點。

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

--模擬誤刪除表t_user。   

  1. SQL> select count(*) from t_user;    
  2. COUNT(*)    
  3. ----------     
  4. 2    
  5. SQL> insert into t_user select 'spring mvc_' from dual;    
  6. 1 row created.    
  7. SQL> commit;    
  8. Commit complete.    
  9. SQL> alter system switch logfile;    
  10. System altered.    
  11. SQL> alter system checkpoint;    
  12. System altered.    
  13. SQL> select current_scn from v$database;    
  14. CURRENT_SCN    
  15. -----------     
  16. 1214281    
  17. SQL> drop table t_user;    
  18. Table dropped.  

--恢復   

  1. [oracle@localhost ~]$ rman target sys/Oracle@oralife nocatalog    
  2. RMAN> run {    
  3. 2> startup force mount;    
  4. 3> set until scn=1214281;    
  5. 4> restore database;    
  6. 5> recover database;    
  7. 6> sql 'alter database open resetlogs';    
  8. 7> } 

--已恢復   

  1. SQL> select count(*) from t_user;    
  2. COUNT(*)    
  3. ----------     

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

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

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

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