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数据库恢复已完,历史表中的数据即于历史表中一致。
浙公网安备 33010602011771号