展会信息港展会大全

oracle 恢复误删除的表和误更新的表
来源:互联网   发布日期:2016-01-28 13:10:05   浏览:2418次  

导读: 根据ORACLE10G的特性,当我执行Drop Table或delete all时,Oracle都会把被删除的表或数据记录放到数据库回收站(Database Recyclebin)里。这样...

根据ORACLE10G的特性,当我执行Drop Table或deleteall时,Oracle都会把被删除的表或数据记录放到数据库回收站(Database Recyclebin)里。这样我们就可以用flashbacktable命令恢复被删除的表,语法:

Flashback table 表名 to before drop;

table test003 to before drop;

Flashback complete.

* from test003;

NAME STATE PERSON

---- ---------- ----------

A 1

A 2

A 1

A 1

B 2

B 2

6 rows selected.

update的表

table a to timestamp to_timestamp('2009-11-09 11:00:00','yyyy-mm-ddhh24:mi:ss');

一般会报错:

ERROR at line 1:

ORA-08189: cannot flashback the table because row movement is notenabled

只需要:

table a enable row movement;

Table altered.

就OK了

table a to timestamp to_timestamp('2009-11-09 11:00:00','yyyy-mm-ddhh24:mi:ss');

Flashback complete.

* from a;

NAME NUM

-------------------- ----------

jim 90

tom 100

kate 220

lily 330

[SYS@ora10gr1#2009-11-04/08:42:53] SQL>show parameterdb_flashback_retention_target

NAME TYPE VALUE

------------------------------------ -----------------------------------------

db_flashback_retention_target integer 1440

默认情况下,oracle会对提交的数据做 1440 分钟,也就是一天的“缓存”,因此一天之内的数据是有办法找回的。

赞助本站

人工智能实验室

相关热词: 开发 编程 android

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港