程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 操作失誤導致Oracle數據庫大恢復的方法

操作失誤導致Oracle數據庫大恢復的方法

編輯:Oracle數據庫基礎

以下的相關內容主要介紹的是,解決由於一次誤操作而引起的Oracle數據庫大恢復的另外一種語法即,重建控制文件(重建控制文件之前,備份controlfile和online redolog)的實際操作方案。

引用

  1. Create controlfile reuse set database "LDBRA"  
  2. MAXINSTANCES 8  
  3. MAXLOGHISTORY 1  
  4. MAXLOGFILES 16  
  5. MAXLOGMEMBERS 3  
  6. MAXDATAFILES 100  
  7. Datafile  
  8. '/ora10g/app/oradata/ldbra/system01.dbf',  
  9. '/ora10g/app/oradata/ldbra/undotbs01.dbf',  
  10. '/ora10g/app/oradata/ldbra/sysaux01.dbf',  
  11. '/ora10g/app/oradata/ldbra/users01.dbf',  
  12. '/ora10g/app/oradata/ldbra/example01.dbf',  
  13. '/ora10g/app/product/10.2.0/db_1/dbs/ company.dbf',  
  14. '/ora10g/app/product/10.2.0/db_1/dbs/streams.dbf'  
  15. LOGFILE GROUP 1 ('/ora10g/app/oradata/ldbra/redo01.log')
     SIZE 51200K,  
  16. GROUP 2 ('/ora10g/app/oradata/ldbra/redo02.log')
     SIZE 51200K,  
  17. GROUP 3 ('/ora10g/app/oradata/ldbra/redo03.log') 
    SIZE 51200K RESETLOGS;  

用上述相關語句來解決由於一次誤操作而引起的Oracle數據庫大恢復的操作似乎重建成功了!但是進行recover的時候報錯了!

引用

  1. SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;  
  2. ORA-00283: recovery session canceled due to errors  
  3. ORA-00600: internal error code, arguments: [kcvhvdf_1], 
    [], [], [], [], [], [],  
  4. []   

可以看到控制文件在重建的過程中進行了dbid重置

引用

  1. SQL> select dbid from v$database;  
  2. DBID  
  3. 1498845164  

問題到這裡似乎失去了頭緒,呵呵,拷回之前備份的控制文件替換剛建的控制文件。因為我采用的是resetlog選項創建控制文件,從理論上來講,應該是會重置redolog的,即重新創建redolog。但是目前采用此選項確報ORA-01227錯誤。不可思議!後來一想可能是跟數據文件中的dbid為0有關。於是采用終極修復方法,bbed!首先將所有數據文件的dbid用bbed工具重置為1488207495,其次將fuzzy標記打為0x2000(因為數據庫被ckpt進程異常終止,將標記打為0x2000表示數據庫是shutdown immediate關閉),采用上述方法之後控制文件成功創建!

引用

  1. SQL> STARTUP NOMOUNT  
  2. CREATE CONTROLFILE REUSE DATABASE "LDBRA" RESETLOGS 
    ARCHIVELOG  
  3. MAXLOGFILES 16  
  4. MAXLOGMEMBERS 3  
  5. MAXDATAFILES 100  
  6. MAXINSTANCES 8  
  7. MAXLOGHISTORY 292  
  8. LOGFILE  
  9. Oracle instance started.  
  10. Total System Global Area 1073741824 bytes  
  11. Fixed Size 1271616 bytes  
  12. Variable Size 461375680 bytes  
  13. Database Buffers 608174080 bytes  
  14. Redo Buffers 2920448 bytes  
  15. GROUP 1 '/ora10g/app/oradata/ldbra/redo01.log' SIZE 50M,  
  16. GROUP 2 '/ora10g/app/oradata/ldbra/redo02.log' SIZE 50M,  
  17. GROUP 3 '/ora10g/app/oradata/ldbra/redo03.log' SIZE 50M  
  18. -- STANDBY LOGFILE  
  19. DATAFILE  
  20. '/ora10g/app/oradata/ldbra/system01.dbf',  
  21. '/ora10g/app/oradata/ldbra/undotbs01.dbf',  
  22. '/ora10g/app/oradata/ldbra/sysaux01.dbf',  
  23. '/ora10g/app/oradata/ldbra/users01.dbf',  
  24. '/ora10g/app/oradata/ldbra/example01.dbf',  
  25. '/ora10g/app/product/10.2.0/db_1/dbs/company.dbf',  
  26. '/ora10g/app/product/10.2.0/db_1/dbs/streams.dbf'  
  27. CHARACTER SET ZHS16GBK  
  28. 21 ;  
  29. Control file created.  

嘗試打Oracle開數據庫

  1. SQL> alter database open RESETLOGS; 

出現數據庫掛起狀態,後台alert日志顯示[2662]錯誤,呵呵,看到這個錯誤,希望就來了!

引用

  1. SMON: enabling cache recovery  
  2. Tue Mar 9 03:11:38 2010  
  3. Errors in file /ora10g/app/admin/ldbra/udump/
    ldbra_ora_13676.trc:  
  4. ORA-00600: internal error code, arguments: 
    [2662], [2268], [3799096903], [2268], [3799098345], 
    [8388617], [], []  
  5. Tue Mar 9 03:11:40 2010  
  6. Errors in file /ora10g/app/admin/ldbra/udump/
    ldbra_ora_13676.trc:  
  7. ORA-00600: internal error code, arguments: [2662],
     [2268], [3799096903], [2268], [3799098345], [8388617],
     [], []  
  8. Tue Mar 9 03:11:40 2010  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved