表空間與數據文件Offline,online的區別


首先明確,表空間與數據文件的關系:Oracle數據庫表空間有兩種,一種smallfile小文件表空間(默認),另一種bigfile大文件表空間;

默認表空間與數據文件的關系:允許一對多的處理方式,一個表空間可以有多個數據文件,一個數據文件只能存在一個表空間內;

而bigfile表空間,是一對一的關系,一個表空間對應一個數據文件;

SQL> create bigfile tablespace big_tbs2  datafile '/u01/app/big02.dbf' size 5m autoextend on maxsize 4097g;

--Yes or no查詢是否是bigfile表空間

SQL> select tablespace_name,bigfile from dba_tablespaces;

TABLESPACE_NAME                BIG ------------------------------ --- SYSTEM                         NO

 

--本次實驗測試均采用默認smallfile表空間管理,測試;

 

SQL> select file_id,TABLESPACE_NAME,ONLINE_STATUS from dba_data_files where tablespace_name='YA';

   FILE_ID TABLESPACE ONLINE_ ---------- ---------- -------          7 YA         ONLINE

 

---OFFLINE,ONLINE  操作有什么意義呢?    --可以維護操作,表空間數據文件的遷移,改名稱;

alter tablespace ya offline;

SQL> host cp /u01/app/oracle/ya.dbf /picclife/app/hukou/data/ya.dbf

SQL> alter database rename file '/u01/app/oracle/ya.dbf' to '/picclife/app/hukou/data/ya.dbf';

SQL> alter tablespace ya online;

 

——————————————————————**********以上操作表空間******以下數據文件---------

SQL> alter database datafile 7 offline;

SQL> host cp /picclife/app/hukou/data/ya.dbf /picclife/app/hukou/data/ya1.dbf

SQL> alter database rename file '/picclife/app/hukou/data/ya.dbf' to '/picclife/app/hukou/data/ya1.dbf';

SQL> recover datafile 7 ;
SQL> alter database datafile 7 online;

 

細心的朋友已經發現了,表空間不需要recover;

細節衍生:---為了快速查詢--先查詢表空間對應的數據文件ID號;

SQL> select FILE_ID,TABLESPACE_NAME from dba_data_files where TABLESPACE_NAME='YA';

   FILE_ID TABLESPACE ---------- ----------          7 YA

SQL> alter system checkpoint;

SQL> select FILE#,CHECKPOINT_CHANGE#,STATUS from v$datafile where file# in(6,7,8);

     FILE# CHECKPOINT_CHANGE# STATUS
---------- ------------------ -------
         6             466041 ONLINE
         7             466041 ONLINE
         8             466041 ONLINE      ---操作執行完全檢查點后,統一;控制文件記錄數據文件的SCN號

SQL> select FILE#,CHECKPOINT_CHANGE#,STATUS from v$datafile_header where file# in(6,7,8);

     FILE# CHECKPOINT_CHANGE# STATUS                 ---數據文件頭部記錄自身的SCN號

---------- ------------------ -------         

6             466041 ONLINE         

7             466041 ONLINE         

8             466041 ONLINE

 

---執行操作:A 表空間OFFLINE ,ONLINE;

--再次查詢對比:
SQL> alter tablespace ya offline;

 v$datafile              控制文件記錄自身的SCN

         6             466041 ONLINE
         7             466122 OFFLINE
         8             466041 ONLINE

v$datafile_header  數據文件頭部記錄自己的

         6             466041 ONLINE
         7                  0 OFFLINE
         8             466041 ONLINE

SQL> alter tablespace ya online;

 v$datafile              控制文件記錄自身的SCN

         6             466041 ONLINE
         7             466231 ONLINE
         8             466041 ONLINE

v$datafile_header  數據文件頭部記錄自己的

         6             466041 ONLINE
         7             466231 ONLINE
         8             466041 ONLINE

----------------------------------------------------表空間狀態變化,在表空間脫機時,CKPT進程會通知dbwr進程將表空間對應的臟塊,寫出,寫入數據文件;
因此,在表空間Online的時候不需要redo恢復,並且數據文件頭部scn凍結-------------------------------------

select * from scott.emp                      ---------------查詢表空間存儲的表將出現如下報錯
                    *
ERROR at line 1:
ORA-00376: file 4 cannot be read at this time

 

 

 

--------------執行操作B : 數據文件offline;

         7             466353 ONLINE

SQL> alter database datafile 7 offline;

 v$datafile              控制文件記錄自身的SCN

         6             466353 ONLINE
         7             466353 RECOVER
         8             466353 ONLINE

v$datafile_header  數據文件頭部記錄自己的

         6             466353 ONLINE
         7             466353 OFFLINE
         8             466353 ONLINE

recover datafile 7;

 v$datafile              控制文件記錄自身的SCN

         6             466353 ONLINE
         7             466384 OFFLINE
         8             466353 ONLINE

v$datafile_header  數據文件頭部記錄自己的

         6             466353 ONLINE
         7             466384 OFFLINE
         8             466353 ONLINE

alter database datafile 7 online;

---------------數據文件offline,控制文件、數據文件頭部記錄的SCN號,停留最后一刻,類似存儲掉電,所以數據文件在線需要應用redo恢復---

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM