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

Oracle數據庫rman恢復之system表空間恢復詳解

編輯:Oracle數據庫基礎

Oracle數據庫rman恢復system表空間恢復是本文我們主要要介紹的內容,system表空間存放著數據字典的信息。當數據庫處於open狀態,如果system表空間所對應的數據文件出現介質失敗,那麼當在其數據文件上執行I/O操作時,數據庫會自動關閉;當數據庫處於關閉狀態時,如果system表空間所對應的數據文件出現介質失敗,數據庫將不能打開。恢復system表空間必須在mount狀態下進行。

示例一:system表空間的數據文件被誤刪除備份數據庫。

刪除system表空間對應的數據文件。啟動數據庫到mount狀態。使用restore datafile轉儲數據文件,並使用recover datafile命令應用歸檔日志,最後使用alter database open打開數據庫。

--備份數據庫(略)   

--刪除system表空間對應的數據文件   

  1. RMAN> host rm $Oracle_BASE/product/10.2.0/oradatabak/system01.dbf    
  2. RMAN> startup    
  3. connected to target database (not started)    
  4. Oracle instance started    
  5. database mounted    
  6. RMAN-00571: ===========================================================    
  7. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============    
  8. RMAN-00571: ===========================================================    
  9. RMAN-03002: failure of startup command at 08/22/2011 21:56:39    
  10. ORA-01157: cannot identify/lock data file 1 - see DBWR trace file    
  11. ORA-01110: data file 1: '/oracle/10g/Oracle/product/10.2.0/oradatabak/system01.dbf'    
  12. SQL> select file#,error from v$recover_file;    
  13. FILE# ERROR    
  14. ---------- -----------------------------------------------------------------     
  15. 1 FILE NOT FOUND    
  16. SQL> select file#,name from v$datafile where file#=1;    
  17. FILE# NAME    
  18. ---------- ------------------------------------------------------------------------------------------------------------------------     
  19. 1 /oracle/10g/Oracle/product/10.2.0/oradatabak/system01.dbf   

--啟動數據庫到mount狀態並進行恢復   

  1. RMAN> run {    
  2. 2> startup force mount;    
  3. 3> restore datafile 1;    
  4. 4> recover datafile 1;    
  5. 5> sql 'alter database open';    
  6. 6> }   

示例二:system表空間數據文件所在磁盤出現故障

備份數據庫(略)刪除system表空間對應的數據文件。啟動數據庫到mount狀態。在restore database之前,執行set newname為數據文件指定新的位置。在restore database之後,執行switch datafile改變控制文件中數據文件位置和名稱。之後通過執行recover database應用歸檔日志。最後執行alter database open打開數據庫。

--備份數據庫(略)   

--刪除system表空間對應的數據文件   

  1. RMAN> host 'rm /oracle/10g/Oracle/product/10.2.0/oradatabak/system01.dbf'    
  2. 2> ;   

--啟動數據庫到mount狀態並進行恢復(為數據文件指定新位置,轉儲數據文件,恢復數據文件,打開數據庫)   

  1. RMAN> run {    
  2. 2> startup force mount;    
  3. 3> set newname for datafile 1 to '/oracle/10g/Oracle/product/10.2.0/oradata/oralife/system01.dbf';    
  4. 4> restore datafile 1;    
  5. 5> switch datafile 1;    
  6. 6> recover datafile 1;    
  7. 7> sql 'alter database open';    
  8. 8> }   

關於Oracle數據庫rman恢復之system表空間恢復的相關知識就介紹到這裡了,希望本次的介紹能夠對您有所收獲!

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