通过flashback query恢复误删数据
- 原理:
利用oracle undo表空间数据块多版本一致性的特性。
是否能闪回查询到误删数据,与数据库繁忙程度及undo大小,retenction有关。越早发现,越有机会恢复。
处理:
恢复表数据
- 1.根据大概误删除时间点,查看是否还能查询到数据。
select * from userA.tableA as of timestamp to_date('2022-04-13 11:15:00','yyyy-mm-dd hh24:mi:ss');
- 2.如果还能查到,把查询结果另存到临时表,交给开发人员处理。
create table userA.tableA_04131115 as select * from userA.tableA as of timestamp to_date('2022-04-13 11:15:00','yyyy-mm-dd hh24:mi:ss');
select count(*) from userA.tableA_04131115;
恢复对象
开发人员误操作修改了某正式环境的package,丢失部分代码,通过flashback 找回
SELECT *
FROM dba_source AS OF TIMESTAMP to_date('2018-04-12 16:25:00', 'yyyy-mm-dd hh24:mi:ss') d
WHERE d.name = upper('pkg_shelf_binding') owner='XXX';