在啟動資料庫的時候,我們可能會遇到如下錯誤:
ORA-1122 :database file %s failedverification check
ORA-1110 : datafile :
ORA-1207: ORA 1207 file is more recent thancontrol file
ORA-1207的主要原因是因為資料庫突然掉電,在重啟的時候,就會容易遇到這種錯誤。
MOS上對這個錯誤的解釋如下:
The informationin this file is inconsistent with information from the control file.
The datafileheader CHECKPOINT count is beyond the controlfile CHECKPOINT count.
控制檔案中記錄了整個資料庫的全部資訊,具體包括資料檔案的,記錄檔等等。
在資料庫運行期間,由於檢查點發生等原因會不斷的更新控制檔案,同時資料庫在關閉和重啟過程中都會更新控制檔案的內容,但是資料庫伺服器突然的掉電,會導致當前的db資訊無法適時更新到控制檔案中,再次啟動資料庫後,當oracle檢測控制檔案和其它檔案資訊是否一致時,就出現了這個錯誤。
MOS上給出的解決方案是重建控制檔案:
1.Mount the database
SQL> Startup mount
2. Save the information from the control file:
SQL> Alter database backup controlfile to trace;
3. Create a control file creation script from the tracefile generated inuser_dump_dest.
Use the Noresetlogs option
--注意這裡使用的是noresetlogs
4. Shutdown the database and start it in NOMOUNT mode
SQL> shutdown abort
SQL> startup nomount
5. Create the control file
Use the script generated by the 'backup controlfile to trace' commandabove.
Please refer to:
Note735106.1 - How to Recreate a Controlfile
6.Recover the database
SQL> recover database;
7. Open the database
SQL> Alter database open;
注意:
我們這裡將控制檔案的內容備份到trace檔案裡的前提條件是資料庫必須是mount或者open狀態,如果連mount都不行的話,我們產生控制檔案就麻煩點了。
SQL> Alter database backup controlfileto trace;
在MOS的[ID 735106.1]裡說明:
如果沒有控制檔案的內容,我們也有兩種方法來處理ORA-1207的錯誤,一是使用Restore的方式,另一個是從備份中找回控制檔案,如果這2個都沒有,我們就必須手工的寫編寫控制檔案的內容。
控制檔案的內容是有一定格式的,我們只需要按照規定的格式建立就好了。
具體內容參考:
Oracle 控制檔案
http://blog.csdn.net/tianlesoftware/article/details/4974440
重建控制檔案後我們需要添加Temp資料表空間,並且留意是否存在唯讀資料表空間,因為重建控制檔案會影響到這2個資料表空間,更多內容參考:
Oracle 重建控制檔案 對 唯讀資料表空間 和 暫存資料表空間 影響 測試
http://blog.csdn.net/tianlesoftware/article/details/7231680
參考:
How to Recreate a Controlfile [ID 735106.1]
ORA-1122, ORA-1110, ORA-1207 while open thedatabase after crash [ID 283927.1]
-------------------------------------------------------------------------------------------------------
著作權,文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任!
Skype: tianlesoftware
QQ: tianlesoftware@gmail.com
Email: tianlesoftware@gmail.com
Blog: http://www.tianlesoftware.com
Weibo: http://weibo.com/tianlesoftware
Twitter: http://twitter.com/tianlesoftware
Facebook: http://www.facebook.com/tianlesoftware
Linkedin: http://cn.linkedin.com/in/tianlesoftware
-------加群需要在備忘說明Oracle資料表空間和資料檔案的關係,否則拒絕申請----
DBA1 群:62697716(滿); DBA2 群:62697977(滿) DBA3 群:62697850(滿)
DBA 超級群:63306533(滿); DBA4 群:83829929 DBA5群: 142216823
DBA6 群:158654907 DBA7 群:172855474 DBA總群:104207940