使用RMAN對PDB執行閃回資料庫操作

eric0435發表於2017-12-18

可以對多租戶資料庫中的單個PDB執行閃回操作。對特定的PDB執行閃回資料庫操作只會修改與這個PDB相關檔案中的資料。CDB中的其它PDB不受影響處於可讀寫狀態。如果使用還原點,在執行閃回資料庫操作時可以使用CDB還原點,PDB還原點,PDB清晰還原點或PDB受保證的還原點。對PDB執行閃回資料庫操作的步驟如下:
1.使用有sysdba或sysbackup許可權的公共使用者連線到root容器

SQL> conn / as sysdba
Connected.

2.確保CDB處於open狀態

SQL> SELECT open_mode from V$DATABASE;

OPEN_MODE
--------------------
READ WRITE

3.登入PDB(jypdb)記錄當前SCN號,然後刪除表t1中的資料

SQL> conn jy/jy@jypdb
Connected.
SQL> SELECT CURRENT_SCN   FROM V$DATABASE;

CURRENT_SCN
-----------
    6024220

SQL> select count(*) from t1;

  COUNT(*)
----------
        39

SQL> delete from t1;

39 rows deleted.

SQL> commit;

Commit complete.

SQL> select count(*) from t1;

  COUNT(*)
----------
         0

4.確保要執行閃回資料庫的PDB(jypdb)處於close狀態。

SQL> conn / as sysdba
Connected.
SQL> alter pluggable database jypdb close immediate;

Pluggable database altered.

SQL> select name,open_mode from v$pdbs;

NAME                                                                                                                             OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
PDB$SEED                                                                                                                         READ ONLY
JYPDB                                                                                                                            MOUNTED
TESTPDB                                                                                                                          READ WRITE

5.將PDB(jypdb)閃回到scn=6024220所在的狀態

RMAN> flashback pluggable database jypdb to scn 6024220;

Starting flashback at 18-DEC-17
starting full resync of recovery catalog
full resync complete
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=11 instance=jy1 device type=DISK


starting media recovery
media recovery complete, elapsed time: 00:00:03

Finished flashback at 18-DEC-17

6. 將CDB設定為只讀狀態

RMAN> alter pluggable database jypdb open read only;

Statement processed

7.檢查閃回資料庫操作的結果是否滿足要求

SQL> conn jy/jy@jypdb
Connected.
SQL> select count(*) from t1;

  COUNT(*)
----------
        39

8.如果閃回操作後滿足你所要求的結果,那麼可以執行以下兩個相互排斥的選項:
.使用resetlogs選項將資料庫開啟。如果當前資料庫為只讀狀態,那麼使用SQL*Plus執行以下命令:

alter pluggable database jypdb close immediate;
alter pluggable database jypdb open resetlogs;

.使用Oracle Data Pump匯出你所需要的物件,然後使用RMAN來恢復資料庫到當前時間,透過對資料庫重新應用重做日誌中的所有改變來將
資料庫恢復到當前時間點從而撤消閃回資料庫所做的改變。

RMAN> recover pluggable database jypdb ;

Starting recover at 18-DEC-17
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=11 instance=jy1 device type=DISK

starting media recovery
media recovery complete, elapsed time: 00:00:01

Finished recover at 18-DEC-17

RMAN> alter pluggable database jypdb open read write;

Statement processed
starting full resync of recovery catalog
full resync complete

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

相關文章