ORA-00214控制檔案版本不一致.txt
SQL> startup force
ORACLE 例程已經啟動。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 75498852 bytes
Database Buffers 88080384 bytes
Redo Buffers 2945024 bytes
ORA-00214: ???? ''D:\ORACLE\ORADATA\ORA10\CONTROL01.CTL'' ?? 1173 ???
''D:\ORACLE\ORADATA\ORA10\CONTROL03.CTL'' ?? 1158 ???
解決方法:
SQL> conn sys as sysdba
SQL> startup nomount
SQL> alter system set control_files=
'D:\ORACLE\ORADATA\ORA10\CONTROL02.CTL'
scope=spfile;
SQL> alter database mount
SQL> alter database open
昨天公司資料庫出現問題,由於斷電(Oracle 處於Open狀態下),導致資料庫啟動時報錯ORA-00214: controlfile ‘d:\oracle\oradata\orcl\control01.ctl’ version 57460 inconsistent with file d:\oracle\oradata\orcl\control02.ctl’ version 57452.
ORA-01122 ATABASE file1 failed verfication check
這個是由於控制檔案版本不同導致。在資料庫設計的過程中,從安全的角度考慮,系統使用了三個映象的控制檔案,現在三個控制檔案version號不一致,所以資料庫Instance啟動時報錯。
我首先備份了控制檔案,啟動了資料庫到nomount狀態下,分別指定系統控制檔案為三個中的其中一個
ALTER SYSTEM SET CONTROL_FILES='F:\ORACLE\ORADATA\ORACAS\CONTROL01.CTL'
SCOPE=SPFILE
然後啟動資料庫到Mount狀態下,如果還是報錯,就指定下一個
ALTER SYSTEM SET CONTROL_FILES='F:\ORACLE\ORADATA\ORACAS\CONTROL02.CTL'
SCOPE=SPFILE
然後啟動資料庫到Mount狀態下,如果還是報錯,就指定下一個
ALTER SYSTEM SET CONTROL_FILES='F:\ORACLE\ORADATA\ORACAS\CONTROL03.CTL'
SCOPE=SPFILE
只要上面三次操作中有一次成功,就可以用那個成功的控制檔案來重新作出另外兩個控制檔案。
如果三次操作都不成功,就是說這三個控制檔案都不好使了,這時候需要建立新的控制檔案
步驟如下:
1、ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
這時候會在udump目錄下生成SID_ora_*.trc檔案,根據你是在歸檔還是非歸檔模式下,選擇一段內容
建立建立指令碼
我是在非歸檔模式下,選擇第一段內容
2)根據得到的TRC檔案建立ora.sql內容如下:
CREATE CONTROLFILE REUSE DATABASE "ORACAS" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 2 'F:\ORACLE\ORADATA\ORACAS\REDO02.LOG' SIZE 100M,
GROUP 3 'F:\ORACLE\ORADATA\ORACAS\REDO03.LOG' SIZE 100M
DATAFILE
'F:\ORACLE\ORADATA\ORACAS\SYSTEM01.DBF',
'F:\ORACLE\ORADATA\ORACAS\UNDOTBS01.DBF',
'F:\ORACLE\ORADATA\ORACAS\CWMLITE01.DBF',
'F:\ORACLE\ORADATA\ORACAS\DRSYS01.DBF',
'F:\ORACLE\ORADATA\ORACAS\EXAMPLE01.DBF',
'F:\ORACLE\ORADATA\ORACAS\INDX01.DBF',
'F:\ORACLE\ORADATA\ORACAS\ODM01.DBF',
'F:\ORACLE\ORADATA\ORACAS\TOOLS01.DBF',
'F:\ORACLE\ORADATA\ORACAS\USERS01.DBF',
'F:\ORACLE\ORADATA\ORACAS\XDB01.DBF'
CHARACTER SET ZHS16GBK
;
STARTUP NOMOUNT,然後執行ORA.SQL,。
成功以後,嘗試開啟資料庫,失敗,需要進行media recovery;
RECOVER DADAFILE 'F:\ORACLE\ORADATA\ORACAS\SYSTEM01.DBF',
......
全部恢復以後,就可以啟動資料庫,ALTER DATABASE OPEN NORESETLOG;
再重新給生成的控制檔案做映象就可以了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25964700/viewspace-709096/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 水煮二《Oracle9i——ora-00214"控制檔案"Oracle
- 控制檔案版本不一致下恢復資料庫資料庫
- 【備份恢復】 控制檔案之版本不一致 之恢復操作
- 控制檔案不一致引發的“血案”
- 把“點檔案”放到版本控制中
- 備份與恢復--重新控制檔案資料字典和控制檔案不一致的恢復
- 使用git不希望檔案被版本控制Git
- git移除已經加入版本控制的檔案Git
- 【控制檔案】映象控制檔案
- Java輸出流在txt檔案中的換行控制Java
- git 強制忽略加入版本控制的檔案Git
- [20121105]清除控制檔案的資訊.txt
- php如何上傳txt檔案,並且讀取txt檔案PHP
- Intellij Idea/Webstorm/Phpstorm 版本控制忽略檔案IntelliJIdeaWebORMPHP
- PCL——txt檔案轉到PCD檔案
- 控制檔案
- [20121105]重建控制檔案少一個資料檔案的情況.txt
- 多專案Node版本控制
- Oracle 匯出txt檔案Oracle
- office舊版本檔案轉換為新版本檔案
- SQLSERVER匯出TXT文字檔案,ORACLE SQL LOADER匯入TXT文字檔案SQLServerOracle
- Oracle 控制檔案Oracle
- 重建控制檔案
- 控制檔案概述
- 重建控制檔案--
- 映象控制檔案
- [20210224]控制檔案序列號滿的分析.txt
- Javascript寫入txt和讀取txt檔案示例JavaScript
- 清空檔案下的SVN控制檔案
- 控制檔案的跟蹤檔案全文
- Matlab將.mat檔案儲存為.txt檔案Matlab
- python處理txt檔案Python
- txt檔案匯入oracle方法Oracle
- [20210225]控制檔案序列號滿的恢復.txt
- 使用舊的控制檔案備份來恢復控制檔案
- ORA-01207: 檔案比控制檔案更新 - 舊的控制檔案
- 控制檔案/歸檔日誌
- 2.6.4 指定控制檔案