oracle误drop/update操作后的数据恢复测试
1、drop表,如何进行恢复
create table etl (id number);
insert into etl values (1);
commit;
drop table etl;
如果drop table etl purge --就不能进行恢复
下面进行表的恢复:
(1)介绍视图进行恢复:dba_recyclebin
sql> select object_name,original_name,can_undrop,can_purge from dba_recyclebin where original_name='etl';
object_name original_name can can
------------------------------ -------------------------------- --- ---
bin$v0qznpbkrbieuax/mzb8ww==$0 etl yes yes
sql> create table etl as select * from "bin$v0qznpbkrbieuax/mzb8ww==$0";
表已创建。
sql> select * from etl;
id
----------
1
恢复完成.
(2) 无法恢复的情况:drop table etl purge ;
sql> create table etl2 (name varchar2(10));
表已创建。
sql> insert into etl2 values ('test');
已创建 1 行。
sql> commit;
提交完成。
sql> drop table etl2 purge;
表已删除。
sql> select object_name,original_name,can_undrop,can_purge from dba_recyclebin where original_name='etl2';
未选定行
sql>
2、update 表的恢复
sql> select sysdate from dual;
sysdate
-------------------
2008-11-21 19:45:20
sql> select * from etl;
id
----------
1
sql> update etl set id=2;
已更新 1 行。
sql> select * from etl;
id
----------
2
sql> commit;
提交完成。
create table test_bak
as
select * from test as of timestamp to_timestamp('20081126 103435','yyyymmdd hh24miss');
表已创建。
sql> select * from etl_bak;
id
----------
1
sql>
完成update表的恢复。