估计闪回也难恢复回去了!不过可以试一下 Oracle 9.2引入flashback query: 事先你要估算哈你删除数据到现在好久了, 如: 1、假设当前距离删除数据已经有5 分钟左右的话: select * from table as of timestamp sysdate-5/1440; 2、将查询的结果塞入中间表 create table tmp as select * from table as of timestamp sysdate-5/1440; 3、drop原来的表: drop table 原表; 4、重新将中间表数据恢复: create table 表 as select * from tmp;
类似 SELECT VERSIONS_OPERATION, VERSIONS_STARTTIME, VERSIONS_ENDTIME, EMPNO, ENAME, JOB, SAL, DEPTNO FROM EMP VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE;
flashback scn select dbns_flashback.get_system_change_number sn from dualinsert into tab select * from tab as of scn sn(上面查到的一个scn) commit
select dbms_flashback.get_system_change_number sn from dual
Flashback是oracle 9i开始就提供的一项特性
该参数用来控制flashback log 数据保留的时间,或者说,你希望flashback database 能够恢复的最早的时间点。默认值是1440,单位是minute,即24 小时,
Oracle 9.2引入flashback query:
事先你要估算哈你删除数据到现在好久了,
如:
1、假设当前距离删除数据已经有5 分钟左右的话:
select * from table as of timestamp sysdate-5/1440;
2、将查询的结果塞入中间表
create table tmp as select * from table as of timestamp sysdate-5/1440;
3、drop原来的表: drop table 原表;
4、重新将中间表数据恢复:
create table 表 as select * from tmp;
SELECT VERSIONS_OPERATION, VERSIONS_STARTTIME, VERSIONS_ENDTIME,
EMPNO, ENAME, JOB, SAL, DEPTNO
FROM EMP
VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE;
select dbns_flashback.get_system_change_number sn from dualinsert into tab select * from tab as of scn sn(上面查到的一个scn)
commit