conn scott/system
03:32:38 SQL> select count(*) from tab as of scn(1726590);
select count(*) from tab as of scn(1726590)
*
ERROR at line 1:
ORA-01031: insufficient privileges ###提示没有权限,就是grant sysdba也没有,仍提示此错
Elapsed: 00:00:00.00
03:33:09 SQL> conn /as sysdba ##切到sysdba
Connected.
03:34:48 SQL> create table t_sysdba(a int);
Table created.
Elapsed: 00:00:00.04
03:36:24 SQL> select timestamp_to_scn(systimestamp) from dual;###利用函数查删除表前的scn,这是个好函数啊
TIMESTAMP_TO_SCN(SYSTIMESTAMP)
------------------------------
1726873
Elapsed: 00:00:00.00
03:36:27 SQL> select count(*) from tab;
COUNT(*)
----------
3660
Elapsed: 00:00:00.01
03:36:35 SQL> drop table t_sysdba;
Table dropped.
Elapsed: 00:00:00.09
03:36:42 SQL> select count(*) from tab as of scn(1726873);##再查,删除的表出来了吧,哈哈
COUNT(*)
----------
3660
Elapsed: 00:00:00.02
03:36:54 SQL>
小结:
1,oracle flashback如要flashback数据库自有的字典表,必须要用sysdba权限执行,普通用户是不行
2,普通用户可以flashback 查询及to before drop普通表
3,flashback依赖的是db_recovery_area
4,是否开启归档与flashback普通表有关系
这个第3点我还要再查下
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9240380/viewspace-668258/ ,如需转载,请注明出处,否则将追究法律责任。