Oracle的撤回功能

不小心修改了数据库,已经提交了,没有备份,还能恢复吗?碰到这个问题,你多半要哭了。

别担心,Oracle就可以。不要总抱怨Oracle占地方,这个功能关键时刻真能保命。

如果你用到这个功能,说明你之前一定脑抽或手滑了,以后小心吧。

假设你操作了表A,而且提交了。

-- 查10分钟前数据(先回想下干坏事是啥时候

SELECT * FROM A AS OF TIMESTAMP SYSDATE - INTERVAL '10' MINUTE;

-- 查看指定时间点的数据(需要精准时间

SELECT * FROM A AS OF TIMESTAMP TO_TIMESTAMP('2026-06-16 17:00:00', 'YYYY-MM-DD HH24:MI:SS');

先搞个备份

create table a_bak as 用上面两种方案的查询语句

直接回滚

-- 第一步:开启表的行移动功能(必须执行)

ALTER TABLE A ENABLE ROW MOVEMENT;

-- 第二步:闪回表到 10 分钟前

FLASHBACK TABLE A TO TIMESTAMP SYSDATE - INTERVAL '10' MINUTE;

-- 第三步:关闭行移动(可选)

ALTER TABLE A DISABLE ROW MOVEMENT;

相关推荐
kirs_ur9 小时前
ECC & LDPC — SSD 的数据卫士
服务器·数据库·性能优化
是三一seven10 小时前
Sql注入基础
数据库·安全·网络安全
Sirens.10 小时前
MySQL表设计进阶-约束范式连接索引与事务
android·数据库·mysql
字节跳动开源12 小时前
火山引擎开源 Agent 驱动的搜索自迭代技术
数据库·开源·agent
Oo大司命oO14 小时前
藏在正则表达式里的陷阱
数据库·mysql·正则表达式
_oP_i15 小时前
mysql统计数据库使用存储大小
数据库
会编程的土豆15 小时前
MySQL 入门:库、表、行、主键是什么
linux·数据库·网络协议·http
jjjava2.015 小时前
系统日志:从入门到精通的完整指南
网络·数据库
写代码的强哥15 小时前
云原生数据库与传统数据库相比“新”在哪里
数据库·云原生·架构
许彰午16 小时前
05-十分钟读懂AWR报告
oracle