【RECO_ORACLE】Oracle闪回PDB的方法

来源:这里教程网 时间:2026-03-03 18:19:47 作者:

实验环境

搭建平台: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;

相关推荐