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

相关推荐
Dnui_King20 分钟前
Oracle SQL语句没有过滤条件,究竟是否会走索引??
数据库·sql·oracle
bug菌¹22 分钟前
滚雪球学Oracle[3.4讲]:事务控制与锁管理
数据库·oracle·事务·事务控制·锁管理
数据最前线33 分钟前
从DBA是“擦车的”谈起
数据库·dba
Wang's Blog1 小时前
Redis: 集群测试和集群原理
数据库·redis
bin91531 小时前
【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换,和文本日期格式转换。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
彭于晏6892 小时前
Android数据存储
android·数据库
Data 3172 小时前
Hive数仓操作(四)
大数据·数据库·数据仓库·hive·hadoop
wangyue42 小时前
MYSQL 乐观锁
数据库·mysql
踩着阴暗的自己向上爬2 小时前
Day01-postgresql数据库基础入门培训
数据库·postgresql
Wang's Blog3 小时前
Redis: 集群架构,优缺点和数据分区方式和算法
数据库·redis·架构