oracle小知識點10--表空間時間點恢復(TSPITR)

selectshen發表於2015-12-28
表空間時間點恢復(TSPITR)是從10g開始有的一個功能,它透過rman指令碼自動建立輔助例項的方法,再透過傳輸表空間的方法,實現
基於表空間時間點的自動化恢復.

以下測試:
db:11.2.0.4
os:centos 6.6

#建測試表空間test及表scott.tb01
[oracle@ct6605 ~]$ sqlplus / as sysdba
SQL> create tablespace test datafile '/u02/oradata/ct6604sb/test01.dbf' size 10m;

Tablespace created.
--這裡建表記得加表空間,因為scott的預設表空間是users
SQL> create table scott.tb01 tablespace test as select 1 x from dual;

Table created.

SQL> select sequence# from v$log where status='CURRENT';

 SEQUENCE#
----------
        31

SQL> exit
#做備份用以恢復
[oracle@ct6605 ~]$ rman target /
RMAN> backup database plus archivelog;

RMAN> exit
#刪除test表空間中的表scott.tb01
[oracle@ct6605 ~]$ sqlplus / as sysdba
SQL> alter system switch logfile;

SQL> drop table scott.tb01 purge;

Table dropped.

SQL> select sequence# from v$log where status='CURRENT';

 SEQUENCE#
----------
        34

SQL> exit
#基於時間點的表空間恢復
[oracle@ct6605 ~]$ rman target /
RMAN> recover tablespace "TEST" until logseq 33 thread 1 auxiliary destination '/home/oracle';

#檢視看到表scott.tb01已恢復
[oracle@ct6605 ~]$ sqlplus / as sysdba
SQL> select * from scott.tb01;

         X
----------
         1

備註:
1.11gr2開始支援對 已刪除的表空間的 基於時間點的自動恢復.
2.開始恢復之前,要確定要還原到的time或logseq或scn,並檢視備份確認.
3.恢復一次之後,再執行恢復一次時,可能會報RMAN-05073錯誤,因為第一次恢復時新建的資料檔案的時間點大於備份時的時間
點.要處理這個問題11gr2可以刪掉重新恢復,11gr2之前版本建議手動建輔助例項恢復.
4.執行完 表空間時間點恢復 後,最好儘快對新加的表空間進行備份.

5.使用sys.ts_pitr_check檢視在恢復之前確保恢復集的完整性,並且標識可能用到的其他表空間.
6.使用sys.ts_pitr_objects_to_be_dropped檢視錶空間恢復到某個時間點後將丟失的這個時間點之後的操作,根據需要確定那些
需要先匯出來.

7.不能還原包含sys使用者特有物件的表空間,不能恢復含有複製主表的表空間,不支援使用快照日誌的表空間,不支援含有回滾段的
表空間.不支援含有varray,巢狀表,外部檔案的表空間.



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

相關文章