首页 > 数据库 > Oracle >

oracle数据表和数据行的恢复

2012-10-20

oracle数据表和数据行的恢复操作笔记:Sql代码 create table temp_update_doc ( docId varchar2(60) not null, num varchar2(16) not null ) SELECT * FROM esns.temp_update_do...


oracle数据表和数据行的恢复
操作笔记:
Sql代码
create table temp_update_doc
(
docId varchar2(60) not null,
num varchar2(16) not null
)
SELECT * FROM esns.temp_update_doc
alter table esns.temp_update_doc drop (num);
delete from esns.temp_update_doc where docid='2222'
drop table esns.temp_update_doc
www.2cto.com
--从回收站恢复被删除的表信息
1、使用drop table删除的表,可以在回收站中查询到
 SQL> select object_name,original_name,type from user_recyclebin;
2、恢复drop table删除的表(表放在回收站中会以BIN$开头)
 SQL> flashback table "BIN$*******" to before drop; 或者flashback table esns.temp_
update_doc to before drop;
--从回收站恢复被删除的数据行(已经比较)信息
1.需要先开启行移动的功能
alter table esns.temp_update_doc enable row movement;
2.按照时间恢复数据,指定时间之前的数据
flashback table esns.temp_update_doc to timestamp to_timestamp('2012-10-19 10:47:00','
yyyy-mm-dd hh24:mi:ss');
3.关闭行移动功能
alter table esns.temp_update_doc disable row movement;
www.2cto.com
--实例如下:
SQL> select * from esns.temp_update_doc;
DOCID
------------------------------------------------------------
444
SQL> drop table esns.temp_update_doc;
Table dropped
SQL> select * from esns.temp_update_doc;
select * from esns.temp_update_doc
ORA-00942: 表或视图不存在
SQL> select object_name,original_name,type from user_recyclebin;
OBJECT_NAME ORIGINAL_NAME TYPE
------------------------------ -------------------------------- -------------------------
BIN$xyRCrPvsTOuSCqOkyD80/g==$0 GRADE TABLE
BIN$cektyuQqRjacZ7/QeVMJpw==$0 SYS_C005742 INDEX
BIN$g3GL4SE7TquJW69BIty+LA==$0 R_DOCUMENT_READ TABLE
BIN$kkbpYLg3Rb2yngWIxIrjEg==$0 TEMP_UPDATE_DOC TABLE
www.2cto.com
4 rows selected
SQL> flashback table esns.temp_update_doc to before drop;
Done
SQL> select * from esns.temp_update_doc;
DOCID
------------------------------------------------------------
444
SQL> delete from esns.temp_update_doc where docid = '444';
1 row deleted
SQL> select * from esns.temp_update_doc ;
DOCID
------------------------------------------------------------
SQL> flashback table esns.temp_update_doc to timestamp to_timestamp('2012-10-19
11:01:00',' yyyy-mm-dd hh24:mi:ss');
Done
SQL> select * from esns.temp_update_doc;
DOCID
------------------------------------------------------------
444
SQL>
相关文章
最新文章
热点推荐