Oracle 闪回版本(闪回表到指定SCN)

1.创建目录

复制代码
mkdir /u01/app/oracle/flash

2.配置FRA

复制代码
alter system set db_recovery_file_dest_size=15G;

alter system set db_recovery_file_dest='/u01/app/oracle/flash';

3.设置闪回参数--确保可以闪回48h内的数据库

复制代码
 alter system set db_flashback_retention_target=2880;

4.开闪回

复制代码
alter database flashback on;

实践:闪回部分数据

1.解锁hr账户连接数据库

复制代码
alter user hr identified by hr account unlock;

2.运行脚本

在这个脚本中,有两个事务,我们尝试保留insert的事务,回滚update的事务。

复制代码
conn hr/hr@prod4
insert into departments values(290,'Poduct Sales',114,1800);
insert into departments values(300,'Busses Sales',203,1700);
insert into departments values(280,'Mac Sales',205,1700);
commit;
--update
update departments set department_id=310 where department_id=300;
update departments set department_name='Iphone sales' where department_id=280;
commit;

3.闪回版本查询

复制代码
SELECT versions_xid XID, versions_startscn START_SCN,
versions_endscn END_SCN, versions_operation OPERATION,
department_id,department_name
FROM departments
VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE;

可以看到最下面的几行是刚才执行脚本所做的操作。

3.启用行移动

复制代码
alter table departments enable row movement;

4.指定scn号闪回表

复制代码
flashback table departments to scn 2148345;

5.校验表,发现表已经闪回到想要的时间点


update操作被回滚了。

相关推荐
计算机毕设VX:Fegn0895几秒前
计算机毕业设计|基于springboot + vue连锁门店管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
XLYcmy16 分钟前
智能体大赛 实现逻辑 “检索先行”的闭环工作流
数据库·ai·llm·prompt·agent·rag·万方
xcLeigh1 小时前
基于 IoT-benchmark 的时序数据库性能测试实战:从安装到结果分析
数据库·物联网·性能测试·时序数据库·iotdb
SmartBrain1 小时前
FastAPI实战:基于 SQLAlchemy的后端接口开发流程
数据库·架构·fastapi
@@神农1 小时前
PostgreSQL- SQL语句的执行过程(二)
数据库·sql·postgresql
_codemonster1 小时前
MySQL驱动(8.x版本)和MySQL驱动(5.x版本)区别
数据库·mysql
BHXDML2 小时前
操作系统实验:(七)动态分区分配方式的模拟
开发语言·数据库·操作系统
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-02-19
数据库·人工智能·经验分享·神经网络·chatgpt
秋氘渔2 小时前
Django事务机制详解:确保数据一致性
数据库
Howie Zphile2 小时前
# 组织增熵与全面预算管理的持续优化
java·大数据·数据库