②查询 flashback_transaction_query 视图需要 SELECT ANY TRANSACTION 权限。
闪回归档:
将表的闪回数据像redo log一样归档,闪回查询时从归档中取,仍然使用
select ... as of scn|timestamp查询,可以回朔的多年以前的数据。
需指定某个表,归档它的闪回数据。
归档期间,表定义不能改。
create tablespace fda datafile '/u01/app/oracle/oradata/CDB/fda01.dbf' size 5m;
create flashback archive fla1 tablespace fda quota 2m retention 1 year;
grant flashback archive on fla1 to schema1;
SCHEMA1@pdb1> alter table emp1 flashback archive fla1;
数据库闪回:
是数据库整体可以回退到之前某个状态。
例子:
配置闪回恢复区 mkdir /u01/flash_recovery_area SYS@PROD>alter system set db_recovery_file_dest_size=2G; SYS@PROD>alter system set db_recovery_file_dest='/u01/flash_recovery_area'; SYS@PROD>show parameter db_recovery
开归档,开数据库闪回 SYS@PROD>archive log list SYS@PROD>alter database flashback on; SYS@PROD>select flashback_on from v$database;
取当前scn SYS@PROD>select current_scn from v$database;
做操作
在mount下做闪回操作 SYS@PROD>shutdown immeidate; SYS@PROD>startup mount; SYS@PROD>flashback database to scn 909515;
以只读方式打开确认数据库已经被闪回 SYS@PROD>alter database open read only;
以resetlog方式打开数据库 SYS@PROD>alter database open resetlogs;
以用户账号查看,可以闪回的表都记录在recyclebin里:show parameter recyclebin闪回删除表:删除表后,执行flashback table 表名 to before drop;恢复表。把recyclebin里的表清除,这样就不能闪回表了:purge table 表名purge recyclebin; 清空整个recyclebinflashback table t1 to before drop rename to test_ol..