欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle误drop/update操作后的数据恢复测试

程序员文章站 2022-04-16 09:53:17
1、drop表,如何进行恢复 复制代码 代码如下: create table etl (id number); insert into etl values (1);...

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表的恢复。