实际工作中,我们经常会遇到一些情况,误删除某些表或某些表的某些记录,这时候就需要我们将这些记录重新插入进去.如何才能解决这个问题呢? Oracle的Flashback query(闪回查询)为我们解决了这个问题 ,他的原理是Oracle根据undo信息,利用undo数据,类似一致性读取方法,可以把表置于一个删除前的时间点(或SCN),从而将数据找回. 下面我们先从简单的例子来看闪回查询的用法: 现有一张表有如下的数据 如果误执行了delete语句,删除其中一条记录,或插入一个废数据,修改了另外一…
上一篇中讲诉了Oracle中一些闪回查询(Flashback Query),这是利用回滚段信息来恢复一个或一些表到以前的一个时间点(一个快照).要注意的是,Flashback Query仅仅是查询以前的一个快照点而已,并不改变当前表的状态. 下面就来看看其他的闪回. 1.Flashback Table  Oracle Flashback Table特性允许利用Flashback Table语句,确保闪回到表的前一个时间点.与Oracle 9i中的Flashback Query相似.要注意的是,F…
一.引言 程序中用到需要同步oracle更新和删除数据,于是考虑利用oracle的闪回查询机制来实现. 利用该机制首先需要oracle启用撤销表空间自动管理回滚信息,并根据实际情况设置对数据保存的有效期,即对数据的操作保存多久? 查看撤销表信息undo: show parameter undo; 设置撤销表信息: alter system set undo_managerment=auto;设置为auto才可以使用闪回查询 ;最长保留时间(单位秒) alter system set undo_t…
我们有个系统使用了Oracle flashback data archive闪回数据归档特性来作为基于时间点的恢复机制,在频繁插入.更新期间发现SYS_FBA_HIST_NNNN表中的XID被两个事务重用了,导致start_scn相同,于是在执行as of scn/timestamp查询的时候,相同rowid的记录会出来两条,无论是oracle 11.2.0.4还是oracle 18c都能重现,前者几乎100%,后者概率低很多(一开始LZ本地用18c跑了连续四五次都没有出现,以为解决了,后来测试…
Oracle Flashback Technologies - 闪回查询 查看表中,某行数据的修改记录 #创建一个表,并插入和修改数据 SQL> create table y3(id )); Table created. SQL> insert into y3 values(,'wahaha'); row created. SQL> commit; Commit complete. SQL> update y3 ; row updated. SQL> commit; Comm…
Oracle 中利用闪回查询确定某表在某时间点之后的修改内容: 1.查看 DELETE 及 UPDATE 操作修改的数据: SQL> SELECT * FROM tab AS OF TIMESTAMP  to_timestamp('time_point', 'yyyy-mm-dd hh24:mi:ss') MINUS SELECT * FROM tab; 其中将查询得 tab 表在 time_point 时点之后因 DELETE 及 UPDATE 操作修改的数据. 2.查看 INSERT 操作修…
emmmm 写这个博客心情很复杂,,,本来这个触发器早就写好了,后来发生点事就写个博客当个备份吧,就当留纪念了:话不多数上问题以及SQL: 问题: 在ABONPB表上增加一个触发器,针对车牌号字段做update操作且new:传入的mduser字段为API,status为P时,向PA_BANK_REGNO_RECORD表中insert 一条记录,sync字段为0,修改次数为之前的次数加1,其余字段参考字段意义.(YC) 当insert进ABONPB时新案件时,同理lla_code为MA  为条件也…
Flashback query(闪回查询)原理 Oracle根据undo信息,利用undo数据,类似一致性读取方法,可以把表置于一个删除前的时间点(或SCN),从而将数据找回. Flashback query(闪回查询)前提: SQL> show parameter undo; NAME                                TYPE       VALUE ------------------------------------ ----------- --------…
-------------------------与其他数据库相比,Oracle的闪回让开发者多了一条选择的路. Flashback的目的 先看下Oracle官方文档中的解释: Oracle Flashback Technology is a group of Oracle Database features that that let you view past states of database objects or to return database objects to a prev…
本文主要介绍利用UNDO表空间的闪回技术,主要包括:闪回表,闪回版本查询,闪回事务查询,闪回查询.这些闪回技术实现从回滚段中读取表中一定时间内操作过的数据,可用来进行数据比对,或者修正意外提交造成的错误数据.由于利用的是UNDO表空间里记录的数据被改变前的值,因此数据在UNDO空间中保留多久就尤为重要,其中与之关系最紧密的是 UNDO_RETENTION参数. 关于UNDO_RETENTION UNDO_RETENTION 通常默认是900 秒,也就是15 分钟.值得注意是,undo_reten…
使用Flashback Query的场景包括如下: 摘自官档 Recovering lost data or undoing incorrect, committed changes. For example, if you mistakenly delete or update rows, and then commit them, you can immediately undo the mistake. Comparing current data with the correspondi…
环境: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 一.闪回查询 -- 初始化参数undo_retention undo_retention=1800 (1800s=0.5h),若条件…
1.创建table t1 :: SCOTT@ORA11GR2>create table t1 as select * from scott.emp; Table created. :: SCOTT@ORA11GR2>select table_name,tablespace_name from user_tables where table_name = 'T1'; TABLE_NAME TABLESPACE_NAME ------------------------------ -------…
Flashback Query闪回查询 flashback query是基于undo表空间的闪回,与之相关的参数如下: SQL> show parameter undo NAME                                 TYPE        VALUE ------------------------------------ ----------- ------------------------------ undo_management               …
基本判断出要恢复误操作的dml的时间可以使用如下的方法进行数据的恢复: example: 一.创建test表 -------create table flashback_asof------ create table flashback_of( id varchar2(5) primary key, name varchar2(20), desc1 varchar2(20), desc2 varchar2(20) ); 二.insert值 ------insert values----- ins…
一,flashback Oracle Flashback技术是一组数据库特性,它可以让你查看数据库对象的过去状态,或者将数据库对象返回到以前的状态,而无需使用基于时间点的介质恢复.根据数据库的变化,闪回特性可以更快的回退不想要的变化,而且相比介质恢复,对数据库可用性产生的影响更小. 利用闪回特性,你能够: 执行回到过去的数据查询 执行显示对数据库更改的详细历史的元数据的查询 将表或行恢复到之前的时间点 自动追踪和归档事务数据的更改 当数据库保持在线状态时,回退事务和与它相关的事务 flashba…
MariaDB10.3新特性--闪回查询 System-Versioned表特性的引入,可以对表进行闪回.完成类似于Oracle的闪回查询. 修改已有表为System-Versioned MariaDB [zsd]> alter table test with system versioning; MariaDB [zsd]> select * from test; +------+-----------+ | id | name | +------+-----------+ | 1 | 张盛…
KingbaseES V008R006C006B0013版本新增支持闪回查询,闪回版本查询.闪回表到指定时间点.旧版本已支持闪回回收站技术. 闪回技术(闪回查询和闪回表到指定时间点)可以通过时间戳和CSN(commit sequence number)两种方式进行. 两种方式目前都需要依赖提交的时间戳,因此需要开启track_commit_timestamp这个参数.另外闪回查询还需要开启kdb_flashback.enable_flashback_query(新版本已默认开启)的参数. 这里解…
1.知识点:能够对比以下的录屏进行阅读 SQL> --1. 错误地删除了记录 SQL> --2. 错误地删除了表 SQL> --3. 查询历史记录 SQL> --4. 怎样撤销一个已经提交的事务 SQL> SQL> --闪回的类型 SQL> --1. 闪回表:将表回退到过去的一个时间上 SQL> --2. 闪回删除:Oracle回收站 SQL> --3. 闪回版本号查询:全部历史记录 SQL> --4. 闪回事务查询:通过select语句得到一个…
今天在SOA应用数据库上运用DBMS_REDEFITION包进行在线非分区表转换分区表操作时,本想DROP掉建的临时表cube_scope_temp不小心后面忘记加"temp"直接执行了,我等意识到这个问题的时候已经晚了,因为项目建设等遗留问题,数据库是非归档模式,也没有做备份,因为怕影响业务,一时也没想到oracle回收站recyclebin这个方法,直接将备份的建表语句新建了表,保证了业务正常开展,正苦于怎么恢复数据时,突然想oracle 10g提供了回收站这个特性,成功实施数据恢…
很多人在学习flashback database这个oracle技术的时候,都会有一个疑问,就是如果我只有一个数据库作为生产库的话,是否有这样的业务需求导致我们要把数据库闪回到以前的时间点?以及这样做是否值得(当前时间点和闪回目的时间点中间的所有操作将丢失)? 其实抛开这个问题的讨论,在oracle的dataguard环境配置中,对于故障切换后产生故障的主机从新回到dataguard环境,以及处于测试的目的我们人为的激活了备库,flashback database都可以提供非常好的选择. 下面的…
闪回表,实际上就是将表中的数据快速恢复到过去的一个时间点或者系统改变号SCN上.实现表的闪回,需要用到撤销表空间相关的UNDO信息,通过SHOW PARAMETER UNDO命令就可以了解这些信息.用户对表的数据的修改操作,都记录在撤销表空间中,这为表的闪回提供的数据恢复的基础. 修改记录被提交到undo表空间中的默认保留时间为900秒,用户可以在这900秒的时间内对表的进行闪回操作,从而将表中的数据恢复的修改前的状态. 如上图显示的默认900秒,我们通过sql来修改这个默认时间为1200: f…
1.创建表dept1: :: SCOTT@ORA11GR2>create table dept1 as select * from dept; Table created. :: SCOTT@ORA11GR2>select * from dept1; DEPTNO DNAME LOC ---------- -------------- ------------- ACCOUNTING NEW YORK RESEARCH DALLAS SALES CHICAGO OPERATIONS BOSTO…
一.闪回查询(Flashback Query)1.闪回查询技术1.1 闪回查询机制    闪回查询是指利用数据库回滚段存放的信息查看指定表中过去某个时间点的数据信息,或过去某个时间段数据的变化情况,或某个事务对该表的操作信息等.为了使用闪回查询功能,需要启动数据库撤销表空间来管理回滚信息. 1.2 撤销段(UNDO SEGMENT)简介    大部分闪回技术都需要依赖撤销段中的撤销数据.撤销数据是反转DML语句结果所需的信息,只要某个事务修改了数据,那么更新前的原有数据就会被写入一个撤销段.事务…
1.查看数据库归档和闪回状态,及环境准备SQL> archive log list;SQL> select flashback_on from v$database;关闭数据库,启动归档和闪回SQL> shutdown immediate;启动到mount模式SQL> startup mount;开启归档SQL> alter database archivelog;如果归档没有打开,打开归档[因为flashback依赖Media recovery,所以在打开flashback…
一.多表更新 比如线上有个系统由于某一个模块出现异常,导致系统整体的数据出现了错误,需要你手动改写数据库错误,Oracle update语句更新的值来自另一张表 update语法最基本的格式为 UPDATE TABLE_NAME SET COLUMN1 = VALUE1 WHERE COLUMN2 = VALUE2 下面首先来创建两张表,令表名为GF_CONS_TRAN_TEST  AS A -- ---------------------------- -- Table structure f…
 概述: 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速恢复逻辑错误,对于物理损坏或是介质丢失的错误,闪回技术就回天乏术了,还是得借助于Oracle一些高级的备份恢复工具如RAMN去完成(这才是Oracle强大备份恢复机制的精髓所在啊)  撤销段(UNDO SEGMENT) 在讲闪回技术前,需要先了解Oracle中一个逻辑结构--撤销段.因为大部分闪回技…
Flashback 技术基于Undo segment基于内容的, 因此,限制UNDO_RETENTON参数. 要使用flashback 特征,您必须启用自己主动撤销管理表空间. 在Oracle 11g内部和外部使用的新功能:Oracle Flashback Data Archive. FDA通过将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和undo差别开来, 这样就能够为闪回归档区单独设置存储策略,使之能够闪回到指定时间之前的旧数据而不影响undo策略. 在O…
(一)闪回技术概要 闪回技术是数据库备份与恢复的重要补充手段,主要包括以下7种特性: 特性 原理 数据库支持 闪回查询(Flashback Query) 利用undo表空间中的回退信息,查询过去某个时刻或SCN时表中数据的快照 Undo表空间配置 闪回版本查询(Flashback Version Query) 利用undo表空间中的回退信息,查询过去某个时间段或某个SCN段内数据的变化情况 Undo表空间配置 闪回事务查询(Flashback Transaction Query) 利用undo表…
参考资料:Using Oracle Flashback Technology Oracle 11g的新特性闪回操作 闪回查询 闪回查询 闪回版本查询 闪回事务查询 闪回数据 闪回表 闪回删除 闪回数据 闪回归档 下面会分别介绍这些操作.在介绍这些操作之前先看下闪回特性是否开启. 检查闪回特性是否启用 参考资料: Configuring Your Database for Oracle Flashback Technology 打开或关闭oracle数据库的闪回功能步骤 确认数据库闪回特性已经启用…