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

Oracle數據庫的大恢復(誤操作而引起)

編輯:Oracle數據庫基礎

以下的文章主要介紹的是由於一次誤操作而引起的Oracle數據庫的大恢復,前兩天我在Oracle 10g手動建庫腳本中柔然看到dbms_backup_restore.zerodbid(0)的過程,其中主要的作用是修改Oracle數據庫的dbid。

於是想通過該存儲直接在sqlplus中執行修改dbid。

修改之前記錄其dbid

引用

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

修改dbid

引用

  1. SQL> exec dbms_backup_restore.zerodbid(0);  
  2. PL/SQL procedure successfully completed.  

貌似執行成功了,但隨後alert日志顯示ckpt進程將數據實例終止

引用

  1. Tue Mar 9 01:43:22 2010  
  2. CKPT: terminating instance due to error 1242  
  3. Instance terminated by CKPT, pid = 16653 
  4. Tue Mar 9 01:43:53 2010  

再次啟動Oracle數據庫報錯

引用

  1. Tue Mar 9 01:56:09 2010  
  2. Errors in file /ora10g/app/admin/ldbra/udump/ldbra_ora_12275.trc:  
  3. ORA-01221: data file 1 is not the same file to a background process  
  4. ORA-1221 signalled during: ALTER DATABASE OPEN...  

dump Oracle數據文件頭

引用

  1. SQL> ALTER SESSION SET EVENTS 'immediate trace name file_hdrs level 3'; 

通過跟蹤文件可以看到dbid以被重置為0

引用

  1. V10 STYLE FILE HEADER:  
  2. Compatibility Vsn = 169870080=0xa200300  
  3. Db ID=0=0x0, Db Name='LDBRA' 
  4. Activation ID=0=0x0  
  5. Control Seq=8122=0x1fba, File size=65280=0xff00  
  6. File Number=1Blksiz=8192, File Type=3 DATA  

還有一種途徑是通過bbed工具觀察

引用

  1. struct kcvfhhdr, 76 bytes @20  
  2. ub4 kccfhswv @20 0x00000000  
  3. ub4 kccfhcvn @24 0x0a200300  
  4. ub4 kccfhdbi @28 0x00000000  

當然第一反應是重建控制文件,看看能不能恢復成功

引用

  1. SQL> alter database backup controlfile to trace;  
  2. Database altered.  
  3. STARTUP NOMOUNT  
  4. CREATE CONTROLFILE REUSE DATABASE "LDBRA" RESETLOGS ARCHIVELOG  
  5. MAXLOGFILES 16  
  6. MAXLOGMEMBERS 3  
  7. MAXDATAFILES 100  
  8. MAXINSTANCES 8  
  9. MAXLOGHISTORY 292  
  10. LOGFILE  
  11. GROUP 1 '/ora10g/app/oradata/ldbra/redo01.log' SIZE 50M,  
  12. GROUP 2 '/ora10g/app/oradata/ldbra/redo02.log' SIZE 50M,  
  13. GROUP 3 '/ora10g/app/oradata/ldbra/redo03.log' SIZE 50M  
  14. -- STANDBY LOGFILE  
  15. DATAFILE  
  16. '/ora10g/app/oradata/ldbra/system01.dbf',  
  17. '/ora10g/app/oradata/ldbra/undotbs01.dbf',  
  18. '/ora10g/app/oradata/ldbra/sysaux01.dbf',  
  19. '/ora10g/app/oradata/ldbra/users01.dbf',  
  20. '/ora10g/app/oradata/ldbra/example01.dbf',  
  21. '/ora10g/app/product/10.2.0/db_1/dbs/company.dbf',  
  22. '/ora10g/app/product/10.2.0/db_1/dbs/streams.dbf'  
  23. CHARACTER SET ZHS16GBK  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved