表空間OFFLINE和資料檔案OFFLINE的區別

RAYSUNNNY發表於2013-12-05

在對錶空間進行offline時,oracle需要針對這個表空間生成檢查點,重新整理表空間中資料檔案的相關事務,更新資料檔案頭SCN,資料檔案SCN,檔案終止SCN,達到一致狀態,當表空間被再次ONLINE時,oracle會捕捉online時刻的SCN,更新上面各個位置的SCN(當然檔案結束SCN號會置為無窮大),將資料檔案都開啟在對單個資料檔案做offline時,是立即offline,此時不會針對資料檔案生成檢查點,所以資料檔案的終止SCN為無窮大,處於不一致狀態,資料檔案也需要recover,在v$recover_file檢視也可以看到這個檔案的資訊,要想將資料檔案online,必須先對檔案執行recover操作,所以建議offline資料檔案後應該立刻執行recover操作,使他處於一致狀態,以免後面出現不必要的麻煩

對於非歸檔模式下進行資料檔案offline操作需要接上drop子句,他不會物理刪除檔案的,在歸檔模式下指定drop子句會被Oracle忽略

另外對於offline的資料檔案,正常重起是不能對他進行recover的,因為他的狀態是offline,資料庫啟動時是不檢查offline檔案的SCN是否一致的,所以啟動後你仍然可以在v$recover_file

檢視中看到他,需要手工對他進行recover才能恢復,如果應用的聯機日誌已經switch掉,則要從歸檔中進行恢復,沒有歸檔的話,檔案就只能一直處於recover狀態

ORACLE中的資料檔案狀態大部分成為RECOVER狀態,應該怎麼處理,如果RECOVER又報錯:

SQL> recover datafile '/ods_oradata/oradata/ods59105.dbf';
ORA-00279: change 12068486233080 generated at 05/29/2011 05:58:45 needed for
thread 1
ORA-00289: suggestion :
/opt/oracle/flash_recovery_area/ODSDATA/archivelog/2011_05_31/o1_mf_1_164870_%u_
.arc
ORA-00280: change 12068486233080 for thread 1 is in sequence #164870


Specify log: {=suggested | filename | AUTO | CANCEL}
ORA-00308: cannot open archived log
'/opt/oracle/flash_recovery_area/ODSDATA/archivelog/2011_05_31/o1_mf_1_164870_%u
_.arc'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3

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

相關文章