oracle里 delete 了数据怎么恢复。急啊

2024-12-16 02:02:54
推荐回答(5个)
回答1:

/*1.FLASHBACK QUERY*/

--闪回到15分钟前
select * from orders as of timestamp (systimestamp - interval ''15'' minute) where ......
这里可以使用DAY、SECOND、MONTH替换minute,例如:
SELECT * FROM orders AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL ''2'' DAY)

--闪回到某个时间点
select * from orders as of timestamp to_timestamp (''01-Sep-04 16:18:57.845993'', ''DD-Mon-RR HH24:MI:SS.FF'') where ...

--闪回到两天前
select * from orders as of timestamp (sysdate - 2) where.........

/*2.FLASHBACK DROP*/

1.flashback table orders to before drop;

2.如果源表已经重建,可以使用rename to子句:
flashback table order to before drop rename to order_old_version;

/*3.FLASHBACK TABLE*/

1.首先要启用行迁移:
alter table order enable row movement;
2.闪回表到15分钟前:
flashback table order to timestamp systimestamp - interval ''15'' minute;
闪回到某个时间点:
FLASHBACK TABLE order TO TIMESTAMP TO_TIMESTAMP('2007-09-12 01:15:25 PM','YYYY-MM-DD HH:MI:SS AM')

回答2:

Oracle DBA神器:PRM灾难恢复工具,Schema级别数据恢复。PRM For Oracle Database – schema级别oracle数据库数据恢复特性 ,PRM即ParnassusData Recovery Manager是企业级别Oracle数据库灾难恢复工具。PRM可以在无备份的情况下恢复被truncated/drop掉的表,也可以恢复无法打开的Oracle数据库(Alter Database Open失败)中的数据。 PRM是图形化增强版的Oracle DUL工具,同时具备很多Oracle DUL不具备的特性

回答3:

DELETE 以后, Commit了么?
如果还没有 Commit, 那么简单 ROLLBACK 就可以了。

如果已经 COMMIT 了, 那么尝试用 Oracle Flashback Query, 把错误删除的数据,查询出来,然后再尝试恢复。
http://hi.baidu.com/wangzhiqing999/blog/item/224f2c35f6f684b85fdf0e72.html

回答4:

用户删除恢复的方法
用oracle em进行管理,即菜单中的database control -数据库名,进入后,建立表空间,建立用户,指定用户的权限即可,是可视化的界面,呵呵。
服务器-->安全性-->用户

回答5:

如果没有Commit 使用RollBack .恢复
如果Commit了,从事务日志中查询恢复了