首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >两种闪回查询的使用实验

两种闪回查询的使用实验

作者头像
bisal
发布2019-01-29 11:19:56
5360
发布2019-01-29 11:19:56
举报

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收集scn和time映射关系,用于flashback/查询scn和time对应关系等操作。

(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的表,闪回查询不能恢复。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年03月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档