两种闪回查询的使用实验

简介: SQL>select * from test;12一、按照SCN进行恢复SQL>select * from sys.smon_scn_time order by time_dp desc;30970780scn 与时间的对应关系:每隔5分钟,系统产生一次系统时间标记与scn的匹配并存入sys.
SQL>select * from test;
1
2

一、按照SCN进行恢复
SQL>select * from sys.smon_scn_time order by time_dp desc;
30970780
scn 与时间的对应关系:每隔5分钟,系统产生一次系统时间标记与scn的匹配并存入sys.smon_scn_time表

SQL>delete from test;

SQL>select * from test as of scn 30970780
1
2
可以看到在这个检查点的表的历史情况

SQL>insert into test select * from test as of scn 30970780
恢复test该时间点的数据

二、按照时间点恢复
为了看到更准确的时间点,可以创建一个临时表用于查看实验的时间点:
create table rec_date(date_scn date);
删除之前存入时间:
SQL>insert into rec_date select sysdate from dual;

使用保存的时间点进行恢复:
DECLARE 
Restore_scn date; 
BEGIN 
Select date_scn into restore_scn from rec_date; 
Dbms_flashback.enable_at_time (restore_scn); 
END;
/

备注:
1、 SMON_SCN_TIME 表基础知识(来自惜分飞的http://www.xifenfei.com/2754.html)

(1)、作用:smon收集scntime映射关系,用于flashback/查询scntime对应关系等操作。

(2)、保留条数:官方文档给出说明instance number N * 12 times per hour * 24 hours * 5 days = 1440N rows,因为每次的时间间隔不是非常准确的5分钟,所以在具体的条数在实际生产环境中有一定的出入。

(3)、采集和删除:smon进程没5分钟采集一次插入到SMON_SCN_TIME表中,同时将删除历史数据(超过5天前数据)。

(4)、当查询scn对应time,如果scn超过SMON_SCN_TIME表范围,将提示错误;或者查询time对应的scn,如果超过范围也同样报错。

(5)scn计算方法SCN=(SCN_WRP * 4294967296) + SCN_BAS

(6)、对于drop的表,闪回查询不能恢复。

目录
相关文章
|
SQL 数据库
数据库上机实验4 数据更新和视图
数据库上机实验4 数据更新和视图
219 0
|
Oracle 关系型数据库 数据库
Oracle数据库 查询所有表
Oracle数据库 查询所有表
171 1
|
SQL 数据库
数据库上机实验2 单表查询和嵌套查询
数据库上机实验2 单表查询和嵌套查询
107 0
ORCALE清除全部表数据,保留表结构
ORCALE清除全部表数据,保留表结构
131 0
|
SQL 数据库
数据库的简单查询和连接查询实验
数据库的简单查询和连接查询实验
220 0
|
SQL 数据库
数据库的更新实验
本实验的目的是要求学生熟练掌握使用SQL 和通过SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。
212 0
|
Oracle 关系型数据库 数据库
oracle数据库重建用户
oracle数据库重建用户
|
SQL 监控 Cloud Native
PolarDB-X 1.0-用户指南-数据恢复表-SQL闪回
背景介绍 PolarDB-X SQL闪回针对SQL误操作,提供行级数据的恢复能力。 当您在PolarDB-X上执行误操作SQL(如INSERT、UPDATE或DELETE) 后,使用SQL闪回,提供相关的误操作SQL信息,即可从BINLOG中找到匹配的事件,生成对应的恢复文件,下载后根据需求恢复数据。 SQL闪回针对误操作SQL,支持模糊匹配与精确匹配两种丢失数据的定位策略,以及自动选择匹配策略的能力,请参见名词解释。 面向不同的使用场景,SQL闪回提供回滚SQL与原始SQL两种方式来恢复数据。
244 0
PolarDB-X 1.0-用户指南-数据恢复表-SQL闪回