ITPub博客

首页 > 数据库 > Oracle > oracle误drop/update数据恢复测试

oracle误drop/update数据恢复测试

原创 Oracle 作者:junnyblog 时间:2009-10-16 21:46:12 0 删除 编辑

本人主要是对drop/update数据后,在允许有时间内进行数据恢复,操作性强,比较实用。不对理论进行讲诉。

[@more@]

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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22630256/viewspace-1027921/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 网格RAC基础日志
请登录后发表评论 登录
全部评论

注册时间:2009-09-30

  • 博文量
    58
  • 访问量
    612593