【RECO_ORACLE】Oracle閃回PDB的方法

Attack_on_Jager發表於2023-01-10

實驗環境

搭建平臺:VMware Workstation

OS:OL 7.5

DB:Oracle 12.2.0.1


具體步驟

閃回PDB就是閃回資料庫,思路和閃回非PDB環境類似,都是恢復到某個還原點,所以第一步我們先建立一個還原點:

1. 建立還原點

有兩種等價的方式:

(1)在CDB建立

SQL> alter session set container=CDB$ROOT;  ##切換到根容器

SQL> create restore point rsp1 for pluggable database pdbtest1;  ##需要指定PDB

SQL> create restore point rsp2 for pluggable database pdbtest1 guarantee flashback database;  ##建立一個保證還原點的語法, 保證還原點是不會隨著時間從控制檔案中刪除和必須明確刪除。

 

(2)直接在PDB建立

SQL> alter session set container=pdbtest1;  ##切換到PDB

SQL> create restore point rsp1;

SQL> create restore point rsp2 guarantee flashback database;   ##建立一個保證還原點的語法

 

注:

如果是共享undo,閃回會建立輔助例項,所以建議使用以下步驟建立clean還原點,來避免閃回時建立輔助例項( 12.2及以上版本建議使用本地undo(local undo),與其他PDB表空間互不干擾):

SQL> alter pluggable database pdbtest1 close;   ##需要先停庫

SQL> create clean restore point BEFORE_UPGRADE for pluggable database pdbtest1;  ##建立clean還原點

 

(3)檢查還原點資訊

SQL> select NAME,TIME,SCN,pdbtest_RESTORE_POINT,GUARANTEE_FLASHBACK_DATABASE from V$RESTORE_POINT;

或者RMAN檢視

$ rman target /

RMAN> list restore point all;

 

2. 閃回PDB

(1)share undo的兩種不同情況的閃回方法

1) 對於線上直接建立還原點

SQL> alter pluggable database pdbtest1 close;

SQL> flashback pluggable database pdbtest1 to restore point rsp1 auxiliary destination '/u01/app/oracle/oradata/stage';  ##必須新增“ auxiliary destination”關鍵字!此時會建立一個輔助例項,但對於clean還原點不需要這個關鍵字

SQL> alter pluggable database pdbtest1 open resetlogs;

 

2) 對於停庫建立clean還原點

SQL> alter pluggable database pdbtest1 close;

SQL> flashback pluggable database pdbtest1 to clean restore point rsp1;

SQL> alter pluggable database pdbtest1 open resetlogs;

 

(2)local undo的閃回方法

SQL> alter pluggable database pdbtest1 close;

SQL> flashback pluggable database pdbtest1 to restore point rsp1;

SQL> alter pluggable database pdbtest1 open resetlogs;


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

相關文章