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');
相关推荐
⑩-8 分钟前
Redis内存淘汰策略?如何处理大Key?
java·数据库·redis
Y0011123638 分钟前
Day3-MySQL-SQL-2
数据库·sql·mysql
V1ncent Chen1 小时前
从零学SQL 07 数据过滤
数据库·sql·mysql·数据分析
A10169330711 小时前
maven导入spring框架
数据库·spring·maven
代码探秘者1 小时前
【Java集合】ArrayList :底层原理、数组互转与扩容计算
java·开发语言·jvm·数据库·后端·python·算法
末点1 小时前
超长文本格式坐标串数据空间化入库
数据库·c#·st_geomfromtext
七七powerful1 小时前
养龙虾-在 Grafana 中获取 API Token 的方法
数据库
阿坤带你走近大数据2 小时前
Oracle存储过程怎么写
数据库·oracle·存储过程
搜佛说2 小时前
第2章-EdgeX-Foundry架构深度解析
数据库·物联网·架构·边缘计算·iot
知识分享小能手2 小时前
PostgreSQL 入门学习教程,从入门到精通,PostgreSQL 16 服务器配置与数据库监控终极指南 —语法、案例与实战(18)
数据库·学习·postgresql