问题描述误操作后,闪回查询到某一时间点提示:"[-9801]:flashback version has been out of date." 如果显示的是90说明没有更改参数过了UNDO_RETENTION则无法进行闪回查询。不重启也验证了可以闪回查询。 [ OK ][dmdba@localhost ~]$ /dmdb8/dmdbms/bin/DmServicefuwa startStarting DmServicefuwa: 附:开启闪回功能 --开启闪回功能select name,type,value from v$parameter where name='ENABLE_FLASHBACK';或select para_value from -----------1 UNDO_RETENTION SYS 3600.000000注意更改ENABLE_FLASHBACK和ENABLE_FLASHBACK参数后重启与否不影响闪回查询
一、验证 GaussDB T 支持闪回事务查询功能 环境:redhat7.5+gaussdb100 1. ------------------ ------------ ---------- ---------- ------------ ------------ 0 rows fetched. 4.闪回查询 ----可以看到,表wsx.t1已经有记录了 总的来说,gaussdb100 T 是可以支持闪回事务查询。 二、GaussDB T 的 Flashback Table 功能非常强劲可以闪回TRUNCATE Gaussdb提供了类似Oracle的闪回表功能;可以很好的应对drop table或者truncate 可以看到非常强大;仍然可以进行闪回。。。。 这样妈妈再也不用担心数据被truncate了。。。。 那么如果表被ddl change了,还能闪回吗? 我们进一步验证一下呢?
、SMON_SCN_TIME表基础知识(来自惜分飞的http://www.xifenfei.com/2754.html) (1)、作用:由smon收集scn和time映射关系,用于flashback/查询 (4)、当查询scn对应time,如果scn超过SMON_SCN_TIME表范围,将提示错误;或者查询time对应的scn,如果超过范围也同样报错。 (5)、scn计算方法SCN=(SCN_WRP * 4294967296) + SCN_BAS (6)、对于drop的表,闪回查询不能恢复。
Oracle数据库的闪回版本查询(Flashback Version Query)提供了一个审计行改变的查询功能,通过它可以查找到所有已经提交了的行记录。 视频讲解如下:一、 闪回版本查询简介使用闪回版本查询可以获取在给定的时间区间中,指定的行的不同版本。当commit语句被执行时,一个新的行版本将被创建。 闪回版本查询使用了select语句的versions between子句来指定时间区间。 二、 【实战】在查询中使用闪回版本查询在了解到了什么是Oracle数据库的闪回版本查询后,下面将通过一个具体是示例来演示如何在查询中使用闪回版本查询。 (4)执行闪回版本查询获取表上所有的历史版本信息。
题目部分 在Oracle中,什么是闪回查询(Flashback Query)? 答案部分 闪回查询(Flashback Query)是查询过去某个时间点或某个SCN值对应的表中的数据信息。 它是基于回滚(Undo)表空间中的回滚信息实现。 闪回查询分为基于AS OF TIMESTAMP和基于AS OF SCN的闪回查询,如下所示: SELECT * FROM SCOTT.EMP AS OF TIMESTAMP(SYSTIMESTAMP HH24:MI:SS') WHERE WHERE ENAME = 'LHR'; INSERT INTO SCOTT.EMP select * from t AS OF SCN 67830969; 闪回查询示例 old_t; ID NAME ---------- -------------------- 1 lihuar 已用时间: 00: 00: 00.02 ------查询
一、通过scn恢复删除且已提交的数据 1、获得当前数据库的scn号 select current_scn from v$database; (切换到sys用户或system用户查询) 查询到的scn号为:1499223 2、查询当前scn号之前的scn select * from 表名 as of scn 1499220; (确定删除的数据是否存在,如果存在,则恢复数据; 如果不是,则继续缩小scn号) 3、恢复删除且已提交的数据 flashback table 表名 to scn 1499220; 二、通过时间恢复删除且已提交的数据 1、查询当前系统时间 select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual; 2、查询删除数据的时间点的数据 select * from 表名
Oracle数据库的闪回查询(Flashback Query)是对查询语句select的扩展,它会从还原数据中提取所需要的历史数据以反映数据在历史的某个时间段上的状态。 视频讲解如下:一、 闪回查询简介使用闪回查询可以用于查询在特定时间点存在的所有历史数据。使用闪回查询功能,可以完成截止到特定时间的查询。 下图说明了闪回查询的基本执行过程。在查询时通过制度时间戳或者系统的SCN号,闪回查询即可查询出过去时间点上的历史数据。 Oracle数据库的闪回查询后,下面将通过一个具体是示例来演示如何在查询中使用闪回查询。 SQL> commit;(8)使用闪回查询获取员工号为7839的薪水。
题目部分 在Oracle中,什么是闪回版本查询(Flashback Version Query)? 答案部分 闪回版本查询(Flashback Version Query)是查询过去某个时间段或某个SCN段内表中数据的变化情况。闪回版本查询基于回滚(Undo)表空间中的回滚信息实现。 LHR VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE ORDER BY VERSIONS_STARTTIME; 其中,VERSIONS BETWEEN用于指定闪回版本查询时查询的时间段或 SCN段;AS OF用于指定闪回查询时查询的时间点或SCN。 闪回版本查询注意事项: ① VERSIONS子句不能用于查询的表包括外部表、临时表和固定表。 ② 不能使用VERSIONS子句查询视图。但是,在视图定义中可使用VERSIONS子句。
♣ 题目部分 在Oracle中,什么是闪回查询(Flashback Query)? ♣ 答案部分 闪回查询(Flashback Query)是查询过去某个时间点或某个SCN值对应的表中的数据信息。 它是基于回滚(Undo)表空间中的回滚信息实现。 闪回查询分为基于AS OF TIMESTAMP和基于AS OF SCN的闪回查询,如下所示: SELECT * FROM SCOTT.EMP AS OF TIMESTAMP(SYSTIMESTAMP HH24:MI:SS') WHERE WHERE ENAME = 'LHR'; INSERT INTO SCOTT.EMP select * from t AS OF SCN 67830969; 闪回查询示例 old_t; ID NAME ---------- -------------------- 1 lihuar 已用时间: 00: 00: 00.02 ------查询
我查看了undo的空间使用,还是比较充足的,早上已经是10点左右了,所以就是尽快的做数据的恢复,使用闪回查询来做。
♣ 题目部分 在Oracle中,什么是闪回版本查询(Flashback Version Query)? ♣ 答案部分 闪回版本查询(Flashback Version Query)是查询过去某个时间段或某个SCN段内表中数据的变化情况。闪回版本查询基于回滚(Undo)表空间中的回滚信息实现。 LHR VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE ORDER BY VERSIONS_STARTTIME; 其中,VERSIONS BETWEEN用于指定闪回版本查询时查询的时间段或 SCN段;AS OF用于指定闪回查询时查询的时间点或SCN。 闪回版本查询注意事项: ① VERSIONS子句不能用于查询的表包括外部表、临时表和固定表。 ② 不能使用VERSIONS子句查询视图。但是,在视图定义中可使用VERSIONS子句。
注:关于在PostgreSQL上面实现Oracle数据库的闪回功能(闪回查询 闪回表 闪回删除…)的这个想法已经有很长时间了,但是鉴于本人的能力 精力和身体条件 迟迟没有完成。 PostgreSQL闪回查询的大前提。 本文主要介绍 实现闪回查询的 一种实现方案! 亲爱的腾讯云开发社区的小伙伴们 本篇文档我已经整理完成了,现在放在了我的CSDN博客里面,PostgreSQL的学习心得和知识总结(五十五)|关于PostgreSQL数据库兼容Oracle数据库闪回查询的实现方案 Oracle数据库的闪回功能(闪回查询 闪回表 闪回删除…)十分强大,后面有对在PostgreSQL数据库内核上感兴趣的PGers 大家可以相互交流一下!
前段时间有个开发的同事向我咨询一个问题, 开发同事:Oracle会存在一个用户插入数据,已经提交了;但是另外一个用户还查询不到吗? jeanron: MySQL,主库写,从库查,可能会有这种延迟 后续和他们确认了下,是Oracle环境,而且都是在主库端查询,而且是同一个表。 这种情况听起来着实有点意思,当然我们知道多版本查询是Oracle的一个亮点,也是作为MVCC的一个必备特征。如果这个都不能保证,数据就会乱套了。 这个时候使用Oracle的闪回查询就是一个很好的实践。首先确保根据rowid能够定位到数据。 AAASdNAAHAAMgirABN' 1 从这个简单的测试来看,这个数据是在2016-07-14 16:40:00插入的,可以从表里的数据看出,表里有一个字段会做标示,但是数据在一个事务内一直未提交,所以其他的用户查询的时候会始终查到的是未提
有客户现场反馈EasyCVR调用录像回看接口报错,生成回看录像失败。 在排查过程中我们首先需要确定对方的录像有没有开启,录像有没有生成,经过检查后发现现场都是有的,但就是不能调用。 于是我们将设备接入本地,在本地调用后发现是可以的,能够生成录像回看。
题目部分 【DB笔试面试816】在Oracle中,如何让普通用户可以对DBA_SOURCE视图进行闪回查询? 可以通过对该视图进行闪回查询而获取过去某个时间点的数据库中包、存储过程或函数等对象的内容。 普通用户对DBA_SOURCE视图进行闪回查询会报错:“ORA-01031: insufficient privileges”,如下所示: LHR10@orclasm > select * from 本质上执行闪回查询的用户需要有相关对象的FLASHBACK的权限,而角色SELECT_CATALOG_ROLE中含有对视图DBA_SOURCE的FLASHBACK的权限。
闪回支持两种恢复模式: 基于MVCC多版本的数据恢复:适用于误删除、误更新、误插入数据的查询和恢复,用户通过配置旧版本保留时间,并执行相应的查询或恢复命令,查询或恢复到指定的时间点或CSN点。 删除数据然后看能不能闪回。 TRUNCATE TABLE tpcds.reason_t2; select * from tpcds.reason_t2; --现在查询表是空的,没错。 后来查看管理员指南,在特性描述倒是说了“ASTORE引擎暂不支持闪回功能。备机不支持闪回操作。”在开发者指南 CREATE TABLE部分找到这么一句话。 然后继续闪回 TIMECAPSULE TABLE tpcds.reason_t2 to BEFORE DROP; --重新查询,表又恢复了。 主要面向通用的在线交易处理类业务应用场景,适合高并发、小数据量的单点或小范围数据读、写操作。
用户启动数据库服务的两种方式: /dm8/bin/DmServiceDMSERVER start 问题:在图形化界面显示停止状态,点启动会报错 解答:此方式不会更新 DM服务查看器中服务状态 ,可以查询内存中( v$datafile v$instance等 )的表。 数据库无法提供正常服务 OPEN 数据库提供正常服务,可以读取表、数据等信息 SUSPEND 只读状态, 可以查询数据,但不能写数据( commit)写数据文件 MOUNT:配置状态,在该状态下进行重做日志文件的迁移 XXX rename to YYY; 修改表空间脱机状态:alter tablespace XXX offline; 修改表空间联机状态:alter tablespace XXXonline; 查询所有表空间的信息 account lock;(锁定) alter user testuser account unlock;(解锁) 十、事务的提交与回退 commint:对表进行的操作,需要提交 rollback:回滚
可能找回的实验 之所以可以找回,原理就是用闪回,准确说是闪回查询的方法,利用的就是UNDO表空间,如下可以检索dba_seqences视图中sysdate - 60/1440,即1小时之前的数据镜像, 不可能找回的实验 这问题其实和闪回查询的原理有关,因为闪回查询使用的是UNDO表空间,因此回滚段是否包含指定删除时间的镜像,就成为了是否可以找回的关键,如果当前需要找回的数据已经从UNDO删除,则可能报错 使用闪回查询,可能找回删除的序列定义,进而可以知道last_number值,将其设为minvalue,就不会影响使用,相当于了断点续传的作用。 2. 若闪回查询使用的UNDO记录已被删除,此时查询报错ORA-01555,这种方法就不支持找回sequence了。
因为查询不需要记录任何闪回数据,所以工作量的写操作量越大,启用闪回数据库的开销就越高。可以从v$flashback_database_stat查看在一个时间段内数据库闪回日志记录的信息。 ? Create table 72612 38 Delete test 数据 52612 38 commit 1469627 Insert test 数据 52632 38 Commit 查询开启闪回的表空间 这个时候,我们能够看到闪回报错为无法闪回数据文件13,没有闪回日志。 我们再创建一个表空间test01,测试关闭该表空间的闪回功能,是否会有不一样的报错? 当查询test02表空间下的数据会报无法读取数据文件test02_01.dbf,报错如下: ? ?
环境:RHEL 6.4 + Oracle 11.2.0.4 目录: 一、闪回查询 1.1 闪回查询举例 1.2 闪回版本查询举例 二、闪回事物 2.1 闪回事物查询的先决条件 2.2 闪回事物查询 三、闪回表 四、Flashback Data Archive 五、闪回数据库 5.1 配置闪回数据库 5.2 使用闪回数据库 5.3 监视闪回数据库 Reference 一、闪回查询 -- 初始化参数 2.1 闪回事物查询的先决条件 必须先启用重做日志流的其他日志记录。闪回事物查询既需要增强的重做信息,也需要撤销信息。 --由于未启用row movement,闪回表会报错ORA-08189: SQL> flashback table t1 to timestamp systimestamp - interval '3' --查询可以将数据库闪回到多久之前 select * from v$flashback_database_log; --查询数据库的闪回状态 select current_scn, flashback_on