ORA-00205 error in identifying controlfile

zhanglei_itput發表於2010-04-29

  ORA-00205 error in identifying controlfile, check alert log for more info
 
  Cause: The system could not find a control file of the specified name and size.
 
   Action: One of the following:
 
     Check that the proper control file name is referenced in the CONTROL_FILES initialization  parameter in the initialization parameter file and try again.  
 
     When using mirrored control files, that is, more than one control file is referenced in the initialization parameter file, remove the control file name listed in the message  from the initialization parameter file and restart the instance. If the message does not  recur, remove the problem control file from the initialization parameter file and create  another copy of the control file with a new file name in the initialization parameter  file.

     案例-刪除部分資料庫控制檔案後所進行的故障恢復:
 環境:windows xp,oracle9i 9.2.0
 具體示例如下:
  C:\Documents and Settings\w>sqlplus "/as sysdba"
  SQL*Plus: Release 9.2.0.1.0 - Production on Mon Mar 20 10:08:10 2006
  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
  Connected to an idle instance.
  SQL> startup
  ORACLE instance started.
  Total System Global Area 135338868 bytes
  Fixed Size 453492 bytes
  Variable Size 109051904 bytes
  Database Buffers 25165824 bytes
  Redo Buffers 667648 bytes
  ORA-00205: error in identifying controlfile, check alert log for more info
  alert_orcl.log檔案發現錯誤如下:
  ORA-00202: controlfile: 'd:\oracle\oradata\orcl\CONTROL01.CTL'
  ORA-27041: unable to open file
  OSD-04002: unable to open file
  O/S-Error: (OS 2) 系統找不到指定的檔案。
  
        解決方法1:
                將CONTROL03.CTL複製2份,分別將其改名為CONTROL01.CTL和CONTROL02.CTL,重新啟動後問題解決。

  解決方法2:
               首先檢視d:\oracle\oradata\orcl\目錄,如果發現只有CONTROL03.CTL,其它兩個都沒有,需要修改spfileorcl.ora。
        如果系統下pfile檔案和spfile都在D:\oracle\ora92\database\(分別對應INITorcl.ora和SPFILEORCL.ORA,修改INITorcl.ora檔案control_files引數)
      透過create pfile from spfile;然後將修改control_files=("d:\oracle\oradata\orcl\CONTROL01.CTL", "d:\oracle\oradata\orcl\CONTROL02.CTL", "d:\oracle\oradata\orcl\CONTROL03.CTL")
     為control_files=("d:\oracle\oradata\orcl\CONTROL03.CTL")
  然後
  create spfile from pfile;
  SQL> startup
  ORACLE instance started.
  Total System Global Area 135338868 bytes
  Fixed Size 453492 bytes
  Variable Size 109051904 bytes
  Database Buffers 25165824 bytes
  Redo Buffers 667648 bytes
  Database mounted.
  Database opened.
  SQL>
  至此,成功解決此問題。

  
  解決方法3:
               重新建立控制檔案,首先刪除剩餘的控制檔案
  SQL> create controlfile database orcl logfile
  2 group 1('d:\oracle\oradata\orcl\redo01.log') size 100m,
  3 group 2('d:\oracle\oradata\orcl\redo02.log') size 100m
  4 noresetlogs
  5 datafile
  6 'd:\oracle\oradata\orcl\CWMLITE01.DBF',
  7 'd:\oracle\oradata\orcl\EXAMPLE01.DBF',
  8 'd:\oracle\oradata\orcl\INDX01.DBF',
  9 'd:\oracle\oradata\orcl\ODM01.DBF',
  10 'd:\oracle\oradata\orcl\OEM_REPOSITORY.DBF',
  11 'd:\oracle\oradata\orcl\PERFSTAT.DBF',
  12 'd:\oracle\oradata\orcl\TTAPPS01.DBF',
  13 'd:\oracle\oradata\orcl\UNDOTBS01.DBF',
  14 'd:\oracle\oradata\orcl\USERS01.DBF',
  15 'd:\oracle\oradata\orcl\XDB01.DBF',
  16 'd:\oracle\oradata\orcl\SYSTEM01.DBF',
  17 'd:\oracle\oradata\orcl\tools01.DBF'
  18 maxloghistory 2000 maxdatafiles 2000 maxlogmembers 5 character set ZHS16GBK
  ;
  Control file created.
  啟動資料庫:
  SQL> startup
  ORACLE instance started.
  Total System Global Area 135338868 bytes
  Fixed Size 453492 bytes
  Variable Size 109051904 bytes
  Database Buffers 25165824 bytes
  Redo Buffers 667648 bytes
  Database mounted.
  ORA-01113: file 1 needs media recovery
  ORA-01110: data file 1: 'D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF'
  然後對資料庫進行介質恢復:
  SQL> recover database;
  Media recovery complete.
  開啟資料庫:
  SQL> alter database open;
  Database altered.
  最後檢視測試資料:
  SQL> select * from scott.test;
  T
  ----------
  1
  2
  3 
 

參考文獻:1.
                    2.
                   

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9252210/viewspace-661603/,如需轉載,請註明出處,否則將追究法律責任。

相關文章