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操作被回滚了。

相关推荐
岁岁种桃花儿12 小时前
MySQL从入门到精通系列:InnoDB记录存储结构
数据库·mysql
蜜獾云13 小时前
oracle查询所有的表名和注释
oracle
jiunian_cn14 小时前
【Redis】hash数据类型相关指令
数据库·redis·哈希算法
冉冰学姐14 小时前
SSM在线影评网站平台82ap4(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm框架·在线影评平台·影片分类
知识分享小能手15 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019数据库的操作(2)
数据库·学习·sqlserver
爬山算法15 小时前
Hibernate(84)如何在DevOps流程中使用Hibernate?
oracle·hibernate·devops
踩坑小念16 小时前
秒杀场景下如何处理redis扣除状态不一致问题
数据库·redis·分布式·缓存·秒杀
萧曵 丶17 小时前
MySQL 语句书写顺序与执行顺序对比速记表
数据库·mysql
Wiktok17 小时前
MySQL的常用数据类型
数据库·mysql
曹牧17 小时前
Oracle 表闪回(Flashback Table)
数据库·oracle