前记:改bug的时候一不小心误删了生成库上的一条数据,吓的小心脏直跳,幸好找回来了。
如果是刚刚删除 可以采用以下方法:
首先用以下 命令查看当时的数据库参数undo_retention设置。
show parameter undo;
显示如下:
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
undo_retention(保持力),900单位是秒。即15分钟。
修改默认的undo_retention参数设置:
ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH;
1.如果是删除了数据
进行查询闪回如:
select * from order_list as of timestamp to_timestamp('2013-05-29 09:33:00', 'yyyy-mm-dd hh24:mi:ss') where pop='20130319016';
然后闪回的数据重新插入到表中:
insert into order_list(select * from order_list as of timestamp to_timestamp('2013-05-29 09:33:00', 'yyyy-mm-dd hh24:mi:ss') where pop='20130319016');
你也可以建一个临时表将数据全部恢复到临时表中
上面的那个时间点是误删之前的时间,最好是十分接近的时间
2. 如果是表删除了
恢复被删除的基表
Flashback Table 表名 To Before Drop;