在oracle中如何找回被删除的数据?
发布网友
发布时间:2022-04-23 08:40
我来回答
共6个回答
热心网友
时间:2022-04-07 16:46
1、首先新建一张测试表TEST,里面输入记录。由于删除/更新/插入恢复步骤相同,这里仅演示删除数据的情况。
2、删除其中1条记录,查看表中记录情况,由下图可见,记录2被删除了。
3、恢复之前先确定要恢复到的时间点,下图可以看出2018-03-07 15:33:00数据是正确的。
SELECT *
FROM TEST AS OF TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
4、下面进行表数据恢复。
FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
可以看到报错了,原因是没有开启行移动。
5、开启该表的行移动。
ALTER TABLE TEST ENABLE ROW MOVEMENT;
6、再次执行数据恢复。
FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
然后查看数据情况,可以看到已经恢复了。
热心网友
时间:2022-04-07 18:04
--开启行移动功能
alter table 表名 enable row movement;
--恢复表数据
flashback table 表名 to timestamp to_timestamp('2014-05-19 09:40:00','yyyy-mm-dd hh24:mi:ss');
上述时间为删除数据的时间
备注:恢复后请关闭行移动功能
热心网友
时间:2022-04-07 19:39
Oracle10 以上版本,我前一天删的数据都可以恢复,不要慌,认真跟着每步做就好啦嘻嘻(PS:其实第一次删标准表数据的我也很方哈哈哈);
举个栗子:
某天误删了标准表的一条数据,就是采购接收的RCV_TRANSACTIONS表
恢复过程:
1、创建这个接收表的备份(Bak)表,备份当天前两天的所有该表的数据(包括误删的)(这个不会影响原表数据的,没关系,建吧)
CREATE TABLE cux_rcv_transactions_bak1 AS ---表名自己起(XXX_Bak)
select * from rcv_transactions as of timestamp sysdate-2 ; ---恢复前两天天的数据
要恢复数据的这个request_ID(某字段)我是记下来了,所以不用重新费时间去找(这个可以用原表跟备份表对这前两天的数据进行比较,用NOT EXIST)
Request_id
698479;
2、找到备份表里面的这条数据,
SELECT * FROM cux_rcv_transactions_bak1
WHERE TRANSACTION_id = 698479;
3、将这条数据再次插入进RCV_Transactions表里面
INSERT INTO rcv_transactions
SELECT * FROM cux_rcv_transactions_bak1
WHERE TRANSACTION_id = 698479;
4、可以找到原表原来的数据来
SELECT * FROM rcv_transactions
WHERE TRANSACTION_id = 698479;
热心网友
时间:2022-04-07 21:30
1、将你10天前的数据找(如果你的数据还在的话)
create table tmp as
select * from table_name as of timestamp trunc(sysdate)-10;
2、在tmp表里面找到被你删掉的那100条数据,插回原表。
3、不过希望不大了,看你的问题已经提了好久了,如果是刚刚被删掉的话,也许可以找回。
注:trunc(sysdate)-10 就是一个时间点,你可以适当的调整一下这个时间点,来找到你想要的数据。
---
以上,希望对你有所帮助。
热心网友
时间:2022-04-07 23:38
你用的是oracle几呀?
要是10 版本以上的话,好说,
92的话,要从undo中找
SELECT * FROM tablename AS OF TIMESTAMP
TO_TIMESTAMP('2010-12-15 11:10:17', 'YYYY-MM-DD HH:MI:SS')
要是91或8的话,那就麻烦了!!
热心网友
时间:2022-04-08 02:03
10g及以上,试试看 flashback