ORA-38760 問題處理方法

lsxlong123發表於2014-01-27

在OCM認證中,不少人在配置資料庫過程中,會遇到 ORA-38760: This database instance failed to turn on flashback database的錯誤。
1)模擬環境:當前例項已經開啟閃回功能,並建立了一個叫作RP1的恢復點。關閉例項,進行冷備(資料檔案,控制檔案,引數檔案),我這裡捎帶著把閃回區進行了備份。
啟動例項,建立一個測試表空間TEST。這個時候關閉例項,使用冷備份啟動例項。這時候就會丟擲ORA-38760的錯誤。
2)分析問題:這個時候檢視告警日誌,會看到以下幾行:
Allocated 3981204 bytes in shared pool for flashback generation buffer
Starting background process RVWR
RVWR started with pid=29, OS id=6321
Mon Jan 27 15:53:13 2014
Errors in file /u01/app/oracle/admin//bdump/_rvwr_6321.trc:
ORA-38739:flashback log file is more recent than control file.
ORA-38701:Flashback database log 58 seq 58 thread 1:"/home/oracle/flash//flashback/01_mf_9gckndqt_.flb"
接下來,我們關閉閃回,再次開啟資料庫,還是報ORA-38760的錯誤。此時,告警日誌中只是生產了一個_ora_6322.trc的檔案,裡面沒有有用的資訊,告警日誌中還顯示對控制檔案作了一個自動備份。
3)有的人到這就蒙了,我也是。通過測試,我給出了一些方法:
3.1)MOS對於ORA-38739方法的處理。OERR: ORA-38739 Flashback log file is more recent than control file. (Doc ID 289273.1)
大概是進行不完全恢復。沒有測試。我用的冷備,進行不完全恢復,似乎這個解決方法與本案例不太相同。
3.2)關於閃回後,仍無法啟動例項。這個時候,我們檢視閃回的狀態:
select flashback_on from v$database;
flashback_on
-----------------------------
RESTORE POINT ONLY
我們查詢恢復點:SQL>select * from v$restore_point;
ERROR at line 1:
ORA-38701:Flashback database log 1 seq 1 thread 1:
"/home/oracle/flash//flashback/01_mf_9fzqb2fy_.flb"
ORA-27037:unable to obtain file status
Linux Error:2:No such file or directory
Additional information:3
刪除之前建立的恢復點:sql>drop restore point RP1;
SQL>select * from v$restore_point;
no rows selected
SQL>select flashback_on from v$database;
FLASHBACK_ON
----------------------------
NO
啟動例項,SQL>alter database open;
database alerted.
3.3)最簡單的方法是使用冷備份加上對於閃回區的備份,可以直接啟動資料庫例項。已經測試過。

總結,這個問題是控制檔案與閃回區日誌檔案中所記錄的資訊不一致所導致的。因此,冷備的時候,最好將閃回區一併進行備份。

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

相關文章