我们在不启用flashback database的情况下也可以使用guaranteed restore point来恢复数据库
具有sysdba的权限才能创建guaranteed restore point
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
NO
SQL> connect sys/cdb2@cdb2pdb10001 as sysdba
Connected.
SQL> grant sysdba to pdbadmin;
Grant succeeded.
SQL> connect pdbadmin/cdb2@cdb2pdb10001
Connected.
SQL> create table t_2015 as select * from dba_objects;
Table created.
SQL> select count(*) from t_2015;
COUNT(*)
----------
63844
SQL> create restore point before_drop_table guarantee flashback database;
create restore point before_drop_table guarantee flashback database
*
ERROR at line 1:
ORA-01031: insufficient privileges
SQL> connect pdbadmin/cdb2@cdb2pdb10001 as sysdba
Connected.
SQL> create restore point before_drop_table guarantee flashback database;
Restore point created.
SQL> connect pdbadmin/cdb2@cdb2pdb10001
Connected.
SQL> drop table t_2015;
Table dropped.
SQL> desc t_2015;
ERROR:
ORA-04043: object t_2015 does not exist
下面开始flashback database的过程
在flashback之前需要先将pdb close掉
SQL> connect pdbadmin/cdb2@cdb2pdb10001 as sysdba
Connected.
SQL> alter pluggable database close immediate instances=all;
Pluggable database altered.
SQL> flashback pluggable database to restore point before_drop_table;
Flashback complete.
SQL> alter pluggable database open resetlogs;
Pluggable database altered.
SQL> alter pluggable database open read write instances=all;
Pluggable database altered.
SQL> connec pdbadmin/cdb2@cdb2pdb10001
Connected.
SQL> select count(*) from t_2015;
COUNT(*)
----------
63844