经常不小心执行delete删除语句,如何恢复数据,表查询闪回机制;所有操作必须以sys用户身份;
select * from sys.smon_scn_time t order by t.time_dp desc;
--scn 与时间的对应关系 ,每隔5分钟,系统产生一次系统时间标记与scn的匹配并存入sys.smon_scn_time表。
1, 获得当前时间点的scn:
select dbms_flashback.get_system_change_number from dual;
2,首先,确定删除数据的时间,查询出对应的scn号;
select m.* from (
select to_char(t.time_mp/( 60 * 60 * 24)+TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH:MI:SS'), 'YYYY-MM-DD HH:MI:SS' ) sd , t.scn
from sys.smon_scn_time t order by t.time_dp desc
) m
where m.sd like '%2015-07-04 09:40%'
上面语句查询出 2015-07-04 09:40 时间点对应的scn的号;
3, 恢复数据:
insert into scott.test_wt select * from test_wt as of scn 12744670;
test_wt为scott用户下的表名;恢复成功