当前位置:数据库 > Oracle >>

oracle恢复误删除的表和误更新的表

oracle恢复误删除的表和误更新的表
 
今天不小心把一个表删除了。呵呵 查找了下恢复的方法 ,还真是简单啊
 
根据ORACLE10G的特性,当我执行Drop Table或delete all时,Oracle都会把被删除的表或数据记录放到数据库回收站(Database Recyclebin)里。这样我们就可以用flashback table命令恢复被删除的表,语法:
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-dd hh24:mi:ss');

一般会报错:

ERROR at line 1:
ORA-08189: cannot flashback the table because row movement is not enabled

只需要:

table a enable row movement;

Table altered.

就OK了

table a to timestamp to_timestamp('2009-11-09 11:00:00','yyyy-mm-dd hh24: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 parameter db_flashback_retention_target

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target        integer     1440

 

 
默认情况下,oracle会对提交的数据做 1440 分钟,也就是一天的“缓存”,因此一天之内的数据是有办法找回的。
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,