表空間與資料檔案的offline和online操作

leon830216發表於2018-03-10
1. 表空間與資料檔案 offline 的區別

在對錶空間進行 offline 時, oracle 需要針對表空間進行檢查點, 重新整理表空間中資料檔案的相關事務, 更新控制檔案中與資料檔案的 SCN, 達到一致狀態
當表空間被再次 online 時, oracle 會使用 online 時刻的 SCN, 更新上面各個位置的 SCN (當然檔案結束 SCN 號會置為無窮大), 將資料檔案都開啟


在對單個資料檔案做 offline 時, 是立即 offline, 此時不會針對資料檔案進行檢查點, 所以資料檔案的終止 SCN 為無窮大, 處於不一致狀態, 資料檔案也需要恢復, 在v$recover_file 檢視也可以看到這個檔案的資訊, 要想將資料檔案 online, 必須先對檔案執行 recover 操作, 所以建議 offline 資料檔案後應該立刻執行 recover 操作, 使他處於一致狀態, 以免後面出現不必要的麻煩


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


對於 offline 的資料檔案, 重啟資料庫是不能對他進行 recover 的, 因為他的狀態是offline, 資料庫啟動時是不檢查 offline 檔案的 SCN 是否一致的, 所以啟動後仍然可以在 v$recover_file 檢視中看到他們, 需要手工對他進行 recover 才能恢復, 如果應用的聯機日誌已經 switch 掉, 則要從歸檔中進行恢復, 沒有歸檔的話, 檔案就只能一直處於 recover 狀態


2. 操作
以下操作中如果涉及到恢復操作, 則可能需要歸檔檔案或 redo 檔案, 如果資料庫處於非歸檔模式, 而 redo 檔案被切覆蓋掉的話將不能恢復


2-1. 表空間的 offline


2-1-1. normal (預設模式)
對錶空間所有資料檔案做檢查點, 所有資料檔案必須為 online 狀態, 再次 online 時不需要恢復
alter tablespace idx offline;
select tablespace_name,status from dba_tablespaces;
select file_name,online_status from dba_data_files;
select * from v$recover_file;


2-1-2. temporary
只對當前 online 的資料檔案做檢查點, 所有資料檔案不必全為 online, 再次 online 時, 之前 offline 的資料檔案要恢復, 其他不需要 
alter tablespace idx offline temporary;


2-1-3. immediate/for recover(10g 不推薦使用)
所有資料檔案都不做檢查點, 所有資料檔案不必全為 online, 再次 online 時所有資料檔案要恢復, 非歸檔模式時不可用 
alter tablespace idx offline immediate;




2-2. 資料檔案的 offline


2-2-1. 歸檔模式
alter database datafile 5 offline;
recover datafile 5;alter database datafile 5 online;


2-2-2. 非歸檔
alter database datafile 5 offline drop;
recover datafile 5;
alter database datafile 5 online;

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

相關文章