- 确认闪回启用中
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');
Oracle常用闪回操作
最新推荐文章于 2021-04-09 23:34:28 发布