Oracle 10g数据库闪回知识 初始定义:表名==XX create table XX ( ID VARCHAR2(22), VALUE VARCHAR2(22) ) 1. Drop 操作闪回 Drop table XX;--删除表 select * from recyclebin;--查看回收站,发现XX表 flashback table XX to before drop;--闪回到被丢弃前的状态 select * from recyclebin;--查看回收站,未发现XX表 2. Delete,add,update操作闪回 select systimestamp from dual;--查看当前时间,如果不知道,可估算 delete from XX;--删除记录 insert into XX values('new','new');--插入新纪录 update XX set value='after update';--修改记录 alter table XX enable row movement;--允许行操作 flashback table XX to timestamp to_timestamp('2010-05-06 09:57:00','yyyy-mm-dd hh24:mi:ss');--闪回到指定时间的数据状态 alter table XX disable row movement;--不允许行操作 3. 列修改闪回 (未找到) 4. 后备知识 数据库设置前提: ALTER DATABASE ARCHIVELOG;--开启归档模式 alter database flashback on;--允许闪回 ALTER DATABASE OPEN; ALTER DATABASE OPEN READ ONLY;-- 开启只读,防止没有闪回到位,还可以重来 ALTER DATABASE OPEN NORESETLOGS;--不重置记录 闪回技术的实现由 DBMS_FLASHBACK 的 PL/SQL 的 Package 实现,为了使用闪回技术,必须有 EXECUTE 这个 Package 的权限。 这个 Package 的相关参数如下: enable_at_time 以时间戳方式启用会话的闪回功能 enable_at_system_change_number 以 SCN 方式启用会话的闪回功能 disable 禁用会话闪回功能 get_system_change_number 获取当前的 SCN timestamp_to_scn 将时间戳转换为 SCN scn_to_timestamp 将 SCN 转换为时间戳