-
确认闪回启用中
SHOW PARAMETER RECYCLEBIN;
-
启用闪回
ALTER SYSTEM SET RECYCLEBIN = ON;
-
闪回DROP的表
FLASHBACK TABLE xxx TO BEFORE DROP;
-
彻底清除DROP的表,将不能再闪回.
PURGE TABLE xxx;
-
直接彻底DROP掉表
DROP TABLE xxx PURGE;
-
清空所有DROP的表
PURGE RECYCLEBIN;
-
确认最大可闪回多久(秒数)之前的DML操作.(不保证)
SHOW PARAMETER undo_retention;
-
改变最大可闪回多久之前的DML操作
ALTER SYSTEM SET undo_retention = 7200;
-
闪回误DML操作.以误操作emp表job字段为例
a.)确认相应的xid
SELECT versions_xid, job FROM emp VERSIONS BETWEEN SCN minvalue AND maxvalue;
b.)确认相应需要执行的SQL语句. 即是下面查询结果集的UNDO_SQL字段的内容
SELECT operation, start_scn, undo_sql FROM flashback_transaction_query WHERE xid = hextoraw('来自上一查询的xid');
c1.)执行相应的SQL语句. 本方法比较准确,不会影响之后发生的其他字段的变化.
c2.)不方便执行上一方法时,执行以下语句.注意在相应操作之后表中发生的所有操作都将被回复.
FLASHBACK TABLE emp TO SCN 来自上一查询的SCN号;
如果在执行时出错,并提示该表未启用行移功能(row movement),执行以下语句
ALTER TABLE emp ENABLE ROW MOVEMENT;
c3.)也可以恢复到某一时间点,该时间点之后的所有操作都将被回复.to_timestamp也可以使用完整格式('2009-12-04 22:16:20', 'YYYY-MM-DD HH:MI:SS');
FLASHBACK TABLE emp TO TIMESTAMP to_timestamp('17:35', 'hh23:mi');