17.3、Making User-Managed Backups of Offline Tablespaces and Datafiles
備份離線的表空間時,需要注意以下指導原則:
(1)不能離線system表空間或活動復原段的表空間
(2)假設一個表在表空間x中,它的索引在表空間y中。y離線,x線上,當執行dml語句時會報錯。
備份離線表空間:
(1)備份表空間前,查詢dba_data_files識别表空間的資料檔案。
(2)盡量使用normal選項離線表空間,因為它確定把表空間置為線上時不需要恢複
(3)備份離線的資料檔案
(4)把表空間置為線上
注意:如果使用temporary或immediate優先,隻有完成表空間恢複才能把表空間置為線上
(5)歸檔未歸檔的重做日志
SQL> alter system archive log current;
模拟1、把表空間testtbs01離線,然後備份離線的資料檔案
(1)
SQL> col file_name for a40
SQL> select tablespace_name,file_name from dba_data_files where tablespace_name=‘TESTTBS01‘;
TABLESPACE_NAME FILE_NAME
------------------------------ ----------------------------------------
TESTTBS01 /oracle/oradata/boss/testtbs01_01.dbf
TESTTBS01 /oracle/oradata/boss/testtbs01_02.dbf
(2)
SQL> alter tablespace testtbs01 offline normal;
(3)
$ cp -rf /oracle/oradata/boss/testtbs01_01.dbf /oradata/bossbak/20140604/testtbs01_01_`date "+%y_%m_%d"`.dbf
$ cp -rf /oracle/oradata/boss/testtbs01_02.dbf /oradata/bossbak/20140604/testtbs01_02_`date "+%y_%m_%d"`.dbf
(4)
SQL> alter tablespace testtbs01 online;
(5)
SQL> select group#,members,sequence#,archived,status,first_change# from v$log;
GROUP# MEMBERS SEQUENCE# ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- --- ---------------- -------------
1 1 17 YES INACTIVE 575472
2 1 18 YES INACTIVE 575475
3 1 19 NO CURRENT 575477
1 1 20 YES ACTIVE 581638
2 1 21 NO CURRENT 581693
3 1 19 YES ACTIVE 575477
SQL> alter system checkpoint; ##檢查點觸發dbwrn寫程序,把髒資料寫入資料檔案,此時active的日志立即變為inactive。
1 1 20 YES INACTIVE 581638
2 1 21 NO CURRENT 581693
3 1 19 YES INACTIVE 575477