在Oracle中误删除数据后并commit后的数据恢复办法

2014-11-24 18:09:33 · 作者: · 浏览: 0

背景:表A数据误操作,被delete了,恢复。


--1.先备份A表当前数据。


--2.查询某时间点前的SCN号码


SELECT MAX(Scn) FROM Sys.Smon_Scn_Time WHERE Time_Dp < To_Date(某时间点, 'YYYYMMDD hh24:mi:ss');


--3.查看某时间点的A表数据


SELECT * FROM A AS OF SCN '步骤2的SCN号';


--4.如果查看数据是想要的数据,则恢复


SELECT row_movement FROM user_tables WHERE table_name = 'A';


--5.步骤4结果如果为DISABLE ,则执行下面这句话,否则跳过


ALTER TABLE A ENABLE ROW MOVEMENT;


--6.执行


FLASHBACK TABLE A TO SCN '步骤2的SCN号';


--7.如果原来为enable则不用执行,否则执行


ALTER TABLE A DISABLE ROW MOVEMENT;


--8.如果权限不够,就换个DBA用户进行上述操作