根據oracle文檔的解釋:
Cause: The control file change sequence number in the datafile is greater than the number in the control file. This implies that the wrong control file is being used. Note that repeatedly causing this error can make it stop happening without correcting the
real problem. Every attempt to open the database will advance the control file change sequence number until it is great enough.
Action: Use the current control file or do BACKUP CONTROLFILE RECOVERY to make the control file current. Be sure to follow all restrictions on doing a BACKUP CONTROLFILE RECOVERY.
Solution:
1. Check alert file,kill monitor process
2. Startup mount,
3. “alter database backup control to trace”
4. Find the trace file,and open it
5. Startup nomount
6. recreate controlfile using resetlogs
7. “recover database using backup controlfile”
8. “alter database open resetlogs;”
9. “alter tablespace temp add tempfile '.dbf' reuse;”
以下再詳細步驟:
oracle…
oarcle\ora92\bin\sqlplus /nolog
1.SQL> connect /as sysdba
2.SQL> shutdown abort 如果數據庫是打開狀態,強行關閉
3.SQL> startup
ORACLE 例程已經啓動。
Total System Global Area 293601280 bytes
Fixed Size 1248624 bytes
Variable Size 121635472 bytes
Database Buffers 167772160 bytes
Redo Buffers 2945024 bytes
數據庫裝載完畢。
ORA-01122: 數據庫文件 1 驗證失敗
ORA-01110: 數據文件 1: 'F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\ORCLDW\SYSTEM01.DBF'
ORA-01207: 文件比控制文件更新 - 舊的控制文件
4.SQL> alter database backup controlfile to trace as 'e:\controlfile';
數據庫已更改。
5.SQL> shutdown immediate 如果數據庫是打開狀態,則關閉
ORA-01109: 數據庫未打開
已經卸載數據庫
6.SQL> startup nomount;
ORACLE 例程已經啓動。
Total System Global Area 105979576 bytes
Fixed Size 454328 bytes
Variable Size 79691776 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
7.Editplus之類的編輯器打開在第4步生成的e:\controlfile'文件;
其實在這個文件中的已經告訴你咋樣恢復你的數據庫了,找到STARTUP NOMOUNT字樣(有好幾處),然後下面可以看到類似語句,這個文件有好幾個類似的生成控制文件語句,主要針對不同的環境執行不同的語句,象我的數據庫沒有做任何備份,也不是在歸檔模式,就執行這句(刪除其中的註釋行,刪除不需要的數據文件,中間不要有任何空行;
碰到錯誤執行SQL> shutdown abort ;SQL> startup nomount; )
SQL>
CREATE CONTROLFILE REUSE DATABASE "ZFXFZB" RESETLOGS NOARCHIVELOG
MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 680
LOGFILE
GROUP 1 'E:\ORACLE\ORADATA\ZFXFZB\REDO01.LOG' SIZE 100M,
GROUP 2 'E:\ORACLE\ORADATA\ZFXFZB\REDO02.LOG' SIZE 100M,
GROUP 3 'E:\ORACLE\ORADATA\ZFXFZB\REDO03.LOG' SIZE 100M
DATAFILE
'E:\ORACLE\ORADATA\ZFXFZB\SYSTEM01.DBF',
'E:\ORACLE\ORADATA\ZFXFZB\UNDOTBS01.DBF',
'E:\ORACLE\ORADATA\ZFXFZB\CWMLITE01.DBF',
'E:\ORACLE\ORADATA\ZFXFZB\DRSYS01.DBF',
'E:\ORACLE\ORADATA\ZFXFZB\EXAMPLE01.DBF',
'E:\ORACLE\ORADATA\ZFXFZB\INDX01.DBF',
'E:\ORACLE\ORADATA\ZFXFZB\ODM01.DBF',
'E:\ORACLE\ORADATA\ZFXFZB\TOOLS01.DBF',
'E:\ORACLE\ORADATA\ZFXFZB\USERS01.DBF',
'E:\ORACLE\ORADATA\ZFXFZB\XDB01.DBF',
'E:\ORACLE\ORADATA\ZFXFZB\ZFXFZB.ORA'
CHARACTER SET ZHS16GBK
;
執行上面這段語句,這個語句重建控制文件,然後你可以看着e:\controlfile'文件完成下面的恢復工作了,
8.SQL>RECOVER DATABASE (恢復指定表空間、數據文件或整個數據庫) ; 即使出現錯誤也可以正常使用。
SQL>ALTER DATABASE OPEN resetlogs; ; 即使出現錯誤也可以正常使用。
9.SQL>ALTER DATABASE OPEN; 打開數據庫 ; 即使出現錯誤也可以正常使用。
來源:http://www.cnblogs.com/emanlee/archive/2011/11/17/2253294.html 點擊打開鏈接