【PDB】pdb闪回,Oracle还原点

PDB闪回

--开启
alter system set db_recovery_file_dest_size=2g;
alter system set db_recovery_file_dest='+ARCH';
alter database flashback on;
--查看闪回日志保留时间
show parameter flashback
--检查闪回日志
select file_type,percent_space_used,number_of_files from v$recovery_area_usage;

闪回数据库,是从数据文件的当前状态开始,然后应用闪回日志,将它们回滚到过去的某一个状态。

还原点

--创建还原点,如果未开闪回,可使用guarantee flashback database 声明还原点
create restore point before_release guarantee flashback database;
--查看
list restore point all;  --无法辨别哪个pdb
--or
set lines 200
col time for a20
col name for a20
col cname for a15
select r.scn, r.DATABASE_INCARNATION# db_INCARNATION,to_char(r.time,'yyyy-mm-dd hh24:mi:ss') time,
r.GUARANTEE_FLASHBACK_DATABASE GUARANTEE,r.name,r.PDB_RESTORE_POINT,r.CLEAN_PDB_RESTORE_POINT,c.name cname
from v$restore_point r,v$containers c where r.con_id=c.con_id
union all
select r.scn, r.DATABASE_INCARNATION# db_INCARNATION,to_char(r.time,'yyyy-mm-dd hh24:mi:ss') time,
r.GUARANTEE_FLASHBACK_DATABASE GUARANTEE,r.name,r.PDB_RESTORE_POINT,r.CLEAN_PDB_RESTORE_POINT,'cdb' as cname
from v$restore_point r where r.con_id=0;
--删除
drop restore point before_release;

resetlogs pdb

--对pdb进行闪回,resetlogs  redo不会重建,继续记录实例中所有修改操作引起的变化
flashback pluggable database pdb1 to restore point regtest1;
alter pluggable database pdb1 open resetlogs;
--每个pdb以resetlogs方式打开,都会创建一个incarnation,可以通过以下查看
select CON_ID,db_incarnation#,pdb_incarnation#,status,incarnation_time from v$pdb_incarnation
order by con_id;

共享undo方式,可以创建干净的还原点。示例如下:

alter pluggable database pdb1 close;
create clean restore point regtest1 guarantee flashback database;
--恢复时也需要先关闭数据库,再恢复,最后resetlogs
请使用浏览器的分享功能分享到微信等