ORA-01122,ORA-01122,ORA-01122錯誤的解決方法!!

mengzhaoliang發表於2008-02-13
1  在資料庫oracle10g中用冷備份備份了資料庫中的所有的資料檔案、控制檔案、重做日誌檔案。
2  原來的資料庫的資料檔案、控制檔案、重做日誌檔案丟失了 ,把冷備份中的資料檔案、控制檔案、重做日誌檔案複製了 過來。
3  重新啟動資料庫,出現以下錯誤:
SQL> startup
ORACLE instance started.

Total System Global Area  268435456 bytes
Fixed Size                  1218868 bytes
Variable Size              88082124 bytes
Database Buffers          171966464 bytes
Redo Buffers                7168000 bytes
Database mounted.
ORA-01122: database file 6 failed verification check
ORA-01110: data file 6: '/home/mzl/catalog/catalog_rman.bdf'
ORA-01207: file is more recent than control file - old control file

Oracle的控制檔案是隨著資料庫的開啟關閉動態更新的,所以發現目前的 控制檔案不是最新的!


主導思想:建立控制檔案,然後open資料庫。

首先刪除old control file,其實也可以不刪除,個人習慣,然後重建控制檔案。

重建控制檔案可以在資料庫到mount狀態下執行alter database backup controlfile to trace生成sql檔案,具體操作很簡單,不再描述。

1  刪除控制檔案
[oracle@mzl orcl]$ pwd
/u01/app/oracle/oradata/orcl
[oracle@mzl orcl]$ rm *.ctl

2   編寫建立控制檔案的指令碼
[oracle@localhost orcl]$ vi create.sql
內容如下:
[oracle@mzl orcl]$ cat create.sql
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log'  SIZE 50M,
  GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log'  SIZE 50M,
  GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log'  SIZE 50M
-- STANDBY LOGFILE
DATAFILE
  '/u01/app/oracle/oradata/orcl/system01.dbf',
  '/u01/app/oracle/oradata/orcl/undotbs01.dbf',
  '/u01/app/oracle/oradata/orcl/sysaux01.dbf',
  '/u01/app/oracle/oradata/orcl/users01.dbf',
  '/u01/app/oracle/oradata/orcl/example01.dbf'
CHARACTER SET AL32UTF8
;                                   

3  執行指令碼,生成控制檔案
SQL> @create
ORA-01081: cannot start already-running ORACLE - shut it down first

Control file created.

4   開啟資料庫
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 3 needs media recovery
ORA-01110: data file 3: '/u01/app/oracle/oradata/orcl/sysaux01.dbf'

不能直接open,看來有需要恢復的,執行recover database
SQL> recover database;
Media recovery complete.
SQL> alter database open;

Database altered.

SQL> select * from testcold;

         A
----------
         1



資料庫成功啟動!






中的“
ORA-01207: old control file完全解決方案





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

相關文章