当前位置:  数据库>oracle

两种闪回查询的使用实验

    来源: 互联网  发布时间:2017-06-02

    本文导语: 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 ...

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表基础知识

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


    
 
 

您可能感兴趣的文章:

  • mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法
  • HBase上使用SQL查询 Phoniex
  • 问个比较菜的问题: LINUX如何查询C函数的使用方法?
  • !!Unix下如何在程序中查询出剩余磁盘空间?应该使用什么函数?
  • 在SQL中使用convert函数进行日期的查询的代码
  • linux下面如何查询某个进程正在使用的socket句柄数量
  • Oracle层次查询和with函数的使用示例
  • 在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名
  • 数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)
  • c#中使用SqlDataReader查询数据库
  • 请问在Red Hat Linux下怎么使用find exec组合命令查询全部的shell可执行文件并删除这些文件 ? iis7站长之家
  • 在SQL查询中使用LIKE来代替IN查询的方法
  • MySQL中使用case when 语句实现多条件查询的方法
  • sqlserver 多库查询 sp_addlinkedserver使用方法(添加链接服务器)
  • 查询优化之EXPLAIN的使用分析
  • 使用SQL Server数据库嵌套子查询的方法
  • 请问在Red Hat Linux下怎么使用find exec组合命令查询全部的shell可执行文件并删除这些文件 ?
  • 强制SQL Server执行计划使用并行提升在复杂查询语句下的性能
  • 菜鸟问题:请问如何使用UNIX命令查询系统(小型机)的硬件资源
  • MYSQL使用inner join 进行 查询/删除/修改示例
  • 使用Linq查询List中数据的代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • MongoDB 2.5新查询引擎简介
  • mysql查询语句通过limit来限制查询的行数
  • Mysql查询错误:ERROR:no query specified原因
  • red hat 4.6如何查询到底有几个swap分区?如何查询是否都激活了?
  • Mysql设置查询条件(where)查询字段为NULL
  • Oracle将查询的结果放入一张自定义表中并再查询数据
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • MySQL查询优化:用子查询代替非主键连接查询实例介绍
  • Mysql Select查询执行流程介绍及实例
  • having与子查询 查询各门课程超过80分的学生姓名
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • sql中count或sum为条件的查询示例(sql查询count)
  • ubuntu系统中软件安装、卸载以及查询是否已经安装某个软件包的方法
  • mysqli多查询特性 实现多条sql语句查询
  • Mysql大表查询优化技巧总结及案例分析
  • Oracle查询表、视图、序列等信息查询
  • CSS3 @media 查询
  • SQL语言查询基础:连接查询 联合查询 代码
  • MongoDB 查询分析
  • MySQL查询优化:LIMIT 1避免全表扫描提高查询效率
  • python实现DNS正向查询、反向查询的例子


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,