作者:shannnon | 来源:互联网 | 2014-07-09 16:02
oracle数据表和数据行的恢复操作笔记:Sql代码createtabletemp_update_doc(docIdvarchar2(60)notnull,numvarchar2(16)notnull)SELECT*FROMesns.temp_update_do...Syntax
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>