Oracle恢复数据库某张表某一时刻的数据

测试时误删数据,或是需要还原数据反复测试sql,可以用Oracle的闪回功能使数据库恢复到某一时刻。

恢复数据到某一时刻

sql 复制代码
-- 假设表名为 HOLIDAY

-- 开启行移动
ALTER TABLE HOLIDAY ENABLE ROW MOVEMENT;
-- 恢复数据到某一时刻
FLASHBACK TABLE HOLIDAY TO TIMESTAMP TO_TIMESTAMP('2024-01-15 08:00:00', 'yyyy-mm-dd hh24:mi:ss');
-- 关闭行移动
ALTER TABLE HOLIDAY DISABLE ROW MOVEMENT;
ROW MOVEMENT

不开启行移动会报错 ORA-08189: cannot flashback the table because row movement is not enabled

关于行移动,ChatGPT的回答如下:

在Oracle数据库中,启用行移动(ROW MOVEMENT)是一个用于修改表定义的选项,它允许在表上执行一些特定的操作,如更新、删除和插入行,同时保持表的高度可用性。当你启用行移动时,可以更灵活地修改表结构,包括修改表的行的物理存储位置。

查询某一时刻的数据

sql 复制代码
-- 查询某一时刻的数据
SELECT * FROM HOLIDAY AS OF TIMESTAMP TO_TIMESTAMP('2024-01-15 08:00:00', 'yyyy-mm-dd hh24:mi:ss');
相关推荐
认真的薛薛3 小时前
数据库-sql语句
数据库·sql·oracle
爱学英语的程序员3 小时前
面试官:你了解过哪些数据库?
java·数据库·spring boot·sql·mysql·mybatis
·云扬·4 小时前
MySQL Redo Log落盘机制深度解析
数据库·mysql
用户982863025685 小时前
pg内核实现细节
数据库
飞升不如收破烂~5 小时前
Redis 分布式锁+接口幂等性使用+当下流行的限流方案「落地实操」+用户连续点击两下按钮的解决方案自用总结
数据库·redis·分布式
workflower5 小时前
业务需求-假设场景
java·数据库·测试用例·集成测试·需求分析·模块测试·软件需求
亓才孓5 小时前
[JDBC]基于三层架构和MVC架构的JDBCTools
数据库
IT邦德5 小时前
RPM包快速安装Oracle26ai
数据库·oracle
Dovis(誓平步青云)5 小时前
《滑动窗口算法:从 “暴力遍历” 到 “线性高效” 的思维跃迁》
运维·服务器·数据库·算法
mr_LuoWei20096 小时前
python工具:python代码知识库笔记
数据库·python