天天看點

資料檔案、表空間offline用法及差別

對資料庫的脫機包括資料檔案的脫機和對表空間的脫機,表空間脫機實際就是表空間對應的所有資料檔案脫機。

1.         資料檔案OFFLINE

資料檔案添加到表空間之後不能夠被删除的,沒有文法支援這麼做,如果想不使用該資料檔案,唯一是将資料檔案設定為OFFLINE狀态。執行以下步驟将資料檔案設定為OFFLINE狀态:

1)         如果是歸檔模式可以執行如下SQL設定資料檔案的狀态為OFFLINE:

ALTER DATABASE DATAFILE 'XXXX.DBF' OFFLINE;

2)         如果是非歸檔模式執行以下SQL将資料檔案狀态設定為OFFLINE:

ALTER DATABASE DATAFILE 'XXXX.DBF' OFFLINE DROP;

資料檔案脫機,資料檔案相關的資料字典資訊、中繼資料資訊都依然存在,當表空間被删除後,相關資料檔案的資訊才會被清除。DROP TABLESPACE隻是清空Oracle資料字典資訊,即使資料檔案不存在都可以正常的DROP表空間。對于資料檔案的脫機,在設定該資料檔案ONLINE的時候都需要對該資料檔案執行媒體恢複。

如果在非歸檔模式下使用OFFLINE DROP使資料檔案脫機,這就意味着該資料檔案可能無法再恢複到ONLINE狀态,原因就在于在非歸檔模式可能沒有足夠的日志執行ONLINE的媒體恢複。如果日志未發生切換,還依然存在的話,依然可以執行媒體恢複後使資料檔案ONLINE。

2.         表空間OFFLINE

表空間脫機分為正常脫機、臨時脫機和立即脫機,下面讨論這三種脫機方式。

1)         OFFLINE NORMAL

這是預設的選項,正常情況表空間的脫機,當重新執行ONLINE時,Oracle會用相應的SCN來更新表空間資料檔案頭SCN即可正常的ONLINE表空間,不需要執行媒體恢複。

ALTER TABLESPACE XXX OFFLINE [NORMAL];

2)         OFFLINE TEMPORARY

如果指定TEMPORARY,Oracle資料庫為表空間中所有線上資料檔案執行一個檢查點,但是不能確定所有檔案能被同步。當執行這個語句資料檔案已經脫機,那麼在使表空間重新ONLINE之前需要執行媒體恢複。

ALTER TABLESPACE XXX OFFLINE TEMPORARY;

3)         OFFLINE IMMEDIATE

執行這個操作表示立即使表空間脫機,在下次使表空間ONLINE的時候必須執行媒體恢複,媒體恢複成功才能使表空間ONLINE:

ALTER TABLESPACE XXX OFFLINE IMMEDIATE;

對于資料檔案的脫機來說,在下次ONLINE的時候一定要執行媒體恢複過程,如果媒體恢複成功,那麼就可以成功ONLINE。對于正常的表空間脫機,下次使表空間ONLINE的時候不需要執行媒體恢複。對于OFFLINE TEMPORARY的表空間,如果脫機前已經有資料檔案是脫機的,那麼在表空間上線前也需要執行部分資料檔案的媒體恢複。對于IMMEDIATE OFFLINE的表空間,在表空間上線前需要對表空間的所有資料檔案執行媒體恢複。脫機後的資料檔案和表空間,在執行個體重新開機的時候都不會對資料檔案的SCN号進行驗證。

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