表空間與資料檔案的offline和online操作
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;
在對錶空間進行 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 表空間和資料檔案的管理
- 【BBED】使用BBED修改資料檔案SCN,使該檔案從offline轉變為online
- 新建的表空間(或資料檔案)丟失以及控制檔案丟失,有新建表空間(或資料檔案)前的控制文
- Oracle單個資料檔案損壞,在Rman命令裡設定表空間、資料檔案offline方式來恢復最方便Oracle
- 表空間OFFLINE的3種選項。
- oracle 普通表空間資料檔案壞塊Oracle
- 表空間(資料檔案shrink)收縮示例
- PostgreSQL在不同的表空間移動資料檔案SQL
- MySQL InnoDB系統表空間資料檔案配置MySql
- 2.5.9 在資料庫建立期間支援大檔案表空間資料庫
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- 2.5.4 為 SYSAUX 表空間指定資料檔案屬性UX
- 關於丟失表空間資料檔案的處理方式
- Oracle 表空間增加檔案Oracle
- 聊聊Oracle表空間Offline的三種引數(上)Oracle
- 聊聊Oracle表空間Offline的三種引數(中)Oracle
- 聊聊Oracle表空間Offline的三種引數(下)Oracle
- Oracle案例11——Oracle表空間資料庫檔案收縮Oracle資料庫
- oracle建立臨時表空間和資料表空間以及刪除Oracle
- MySQL 磁碟空間滿導致表空間相關資料檔案損壞故障處理MySql
- 達夢資料庫系統表空間資料檔案遷移過程資料庫
- MySQL 執行 Online DDL 操作報錯空間不足?MySql
- oracle dg庫資料檔案空間不足Oracle
- 利用offline datafile檔案方式遷移資料
- Oracle 刪除使用者、表空間、資料檔案、使用者下的所有表Oracle
- MySQL 系統表空間檔案解析MySql
- PostgreSQL:表空間-->資料庫-->表SQL資料庫
- MySQL innodb表使用表空間物理檔案複製表MySql
- Oracle 表空間和資料檔案遇到的坑 (轉載於 微信公眾號 JieKeXu DBA之路)Oracle
- 3576.02空間指令碼brain.script,02檔案, 02“XX_brain”資料夾, 01空間資料夾, 04TB檔案指令碼AI
- [待整理]oracle10g刪除(釋放)資料檔案/表空間流程Oracle
- Oracle 10g大檔案表空間(轉)Oracle 10g
- OracleDatabase——資料庫表空間dmp匯出與匯入OracleDatabase資料庫
- 檢視磁碟使用空間和檔案大小
- Oracle undo 表空間資料檔案丟失強制啟動資料庫(沒有未提交的事務)Oracle資料庫
- MySQL 中的共享表空間與獨立表空間如何選擇MySql
- C檔案與檔案的操作
- ORA-01190使用bbed強制online資料檔案