返回列表 发帖

Oracle11gR2恢复已删除或更改的数据

笺注:这是在 Navicat连接Oracle11gR2 的基础上进行的。


Flashback,简称闪回,解决用户误删、输错数据的问题。以下是根据时间戳恢复已删除或更改的数据。


新建表STU_01:
图片1.png
2022-6-29 22:10


自定义表名:
图片2.png
2022-6-29 22:10


保存成功后的效果:
图片3.png
2022-6-29 22:11




新建查询:
往表STU_01一次性插入多条记录:
INSERT into STU_01 values (1,'小明','广东省,guangzhou');
INSERT into STU_01 values (2,'小李','广东省,foshan');
INSERT into STU_01 values (3,'Zhuohua','四川省,chengdu');
图片4.png
2022-6-29 22:11






当前具体时间:
[root@oracle ~]# date
Fri Oct 16 19:10:17 CST 2020
[root@oracle ~]#


查看表STU_01的当前表数据:
SELECT * FROM STU_01;
图片5.png
2022-6-29 22:12



删除表STU_01的N条数据:
DELETE from STU_01 WHERE ADDRESS LIKE '广东省%';
图片6.png
2022-6-29 22:12



更改表STU_01的N条数据:
UPDATE STU_01 SET ID = 8 WHERE Name = 'Zhuohua';
图片7.png
2022-6-29 22:12



再次查看表STU_01的当前表数据:
SELECT * FROM STU_01;
图片8.png
2022-6-29 22:13






#########
#########

选择一个时间点,查看表STU_01中的数据是否为自己想要的:
Select * from STU_01 as of timestamp to_timestamp('2020-10-16 19:10:00','yyyy-mm-ddhh24:mi:ss');
图片9.png
2022-6-29 22:13



启用表STU_01的行移动功能:
Alter table STU_01 enable row movement;
图片12.png
2022-6-29 22:17



恢复表STU_01的数据到指定的时间点:(要先启用表STU_01的行移动功能)
Flashback table STU_01 to timestamp to_timestamp('2020-10-16 19:10:00','yyyy-mm-ddhh24:mi:ss');
图片13.png
2022-6-29 22:18



表STU_01的数据恢复成功:
图片14.png
2022-6-29 22:18


备注:不会影响其他的表。



数据恢复成功后,关闭表STU_01的行移动功能:
Alter table STU_01 disable row movement;
图片15.png
2022-6-29 22:19






相关文章:
CentOS8_在Docker中安装Oracle11gR2
CentOS8_在Docker中安装Oracle19c

返回列表