ORACLE 数据紧急闪回

首先查询一张表,并记住该表的结构及其数据量。

SELECT * FROM M;

表内如下所示:

然后 DELETE掉此表中的所有内容,语句如下所示。

DELETE  M;
COMMIT;
SELECT * FROM M;

 

接下来,可以使用PLSQLDeveplover中快捷键 Ctrl + E 查看调用执行历史及时间,如下图所示,并将时间粘出:

将此时间戳粘贴至以下语句的时间(在DELETE语句执行前的稍早前)中,即可查看表的UNDO记录,SQL语句及效果如下:

 

SELECT * FROM M AS OF TIMESTAMP TO_TIMESTAMP('2022-01-18 09:51:00','yyyy-mm-dd hh24:mi:ss');

 

 

 

 

 

最后,为了更快的恢复数据,可在之前查询历史的语句前加上CREATE TABLE建立历史表,用于恢复,如代码图所示:

CREATE TABLE M_2022_01_18 AS SELECT * FROM  M AS OF TIMESTAMP TO_TIMESTAMP('2022-01-18 09:51:00','yyyy-mm-dd hh24:mi:ss');
SELECT * FROM M_2022_01_18;

最后,可以使用INSERT INTO 将数据恢复到原表。

 

INSERT INTO M SELECT * FROM M_2022_01_18;

SELECT * FROM M;

 

 

 

 

 

 

 

 

 

至此,OEACLE数据库恢复已完,历史表中的数据即于历史表中一致。

 

posted on 2022-01-17 18:40  顾念啊  阅读(311)  评论(0)    收藏  举报