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');
相关推荐
麦聪聊数据7 小时前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_7 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡7 小时前
【MySQL数据库】数据类型与表约束
数据库·mysql
曹牧8 小时前
Oracle EXPLAIN PLAN
数据库·oracle
BD_Marathon8 小时前
SQL学习指南——视图
数据库·sql
活宝小娜8 小时前
mysql详细安装教程
数据库·mysql·adb
贤时间8 小时前
codex 助力oracle ebs 开发
数据库·oracle
秉承初心8 小时前
PostgreSQL 数据性能瓶颈突破实战
数据库·postgresql·oracle
Database_Cool_9 小时前
即席查询(Ad-Hoc)数据库选型:AnalyticDB MySQL 秒级 Ad-Hoc 分析方案
数据库·mysql