PLSQL_闪回操作1_Flashback Query
2014-07-02 Created By BaoXinjian
在PLSQL开发时,有时候会遇到对表中数据的误删除,其实遇到这种情况不需要紧张,如果问题较大,请DBA帮忙,如果只是小问题,只需自己处理,利用flashback闪回操作即可,可可将表进行恢复
在删除中数据时,系统会自动记录一个SCN和时间戳,按SCN和时间戳就可以查询出被误删除的资料
1.SCN 概念
SCN是当Oracle数据库更新后,由DBMS自动维护去累积递增的一个数字。Oracle数据库中一共有4种SCN分别为
系统检查点SCN: 系统检查点SCN位于控制文件中,当检查点进程启动时(ckpt),Oracle就把系统检查点的SCN存储到控制文件中
2. 使用闪回操作时一些前提条件
- 该表的Flashback权限
- 拥有该表的SELECT\INSERT\DELETE\ALTER权限
- 必须保证表示ROW MOVEMENT
- 采用PURGE参数删除表中数据时不能使用Flashback进行恢复
3. 闪回查询
- 作用: 用以查询以前的被删除资料,用以在执行删除恢复时,有一个正确的scn或者时间戳,系统并没有进行恢复
- 语法: select * from bxj_tst_recyclebin as of [scn or timestamp]
4. 闪回恢复
- 作用: 通过已确认的SCN和时间戳对表被删除的数据真正进行恢复
- 语法: flashback table bxj_tst_recyclebin to [scn or timestamp]
5. 闪回查询恢复前,执行以下语句
alter table bxj_tst_recyclebin enable row movement
Step1. 创建8笔测试资料如下
Step2. 删除其中4笔资料,COMMIT后无法Rollback,通过flashback进行恢复
Step3.1 通过时间间隔确定需恢复的时间戳,在没有恢复之前, 通过闪回查询该事件戳为8笔资料,确定以该时间戳进行恢复
alter table bxj_tst_recyclebin enable row movement
Step3.2 直接通过具体的时间戳进行恢复, 在没有恢复之前, 通过闪回查询该事件戳为8笔资料,确定以该时间戳进行恢复
Step4. 通过flashback进行恢复
flashback table bxj_tst_recyclebin to timestamp(systimestamp - interval'600'second);
flashback table bxj_tst_recyclebin to timestamp(to_timestamp(to_date('20140702 11:40:00','YYYYMMDD HH:MI:SS')));
Step5. 恢复完成后,无需闪回查询,即可以查询到该4笔被删除资料
Step1. 系统一旦将事物Commit后,会系统产生一个SCN,一旦发现误删除数据,马上查询当前的SCN
Step2. 通过闪回查询,确认该SCN是否能查询出该4笔被删除资料
Step4. SCN确认无误后,进行闪回恢复操作
flashback table bxj_tst_recyclebin to scn 10132214657206
Step5. 恢复完成后,无需闪回查询,即可以查询到该4笔被删除资料
Thanks and Regardds
PLSQL_闪回操作1_Flashback Query的更多相关文章
- PLSQL_闪回操作4_Flashback Drop
2014-06-25 Created By BaoXinjian
- PLSQL_闪回操作6_Flashback Database
2014-12-09 Created By BaoXinjian
- PLSQL_闪回操作5_Flashback Table
2014-12-09 Created By BaoXinjian
- PLSQL_闪回操作3_Fashback Transaction Query
2014-12-09 Created By BaoXinjian
- PLSQL_闪回操作2_Fashback Version Query
2014-12-09 Created By BaoXinjian
- MySQL模拟Oralce闪回操作
在前面的文章中我们介绍了MySQL误操作后数据恢复(update,delete忘加where条件),大概操作是通过sed命令把binlog中相关SQL误操作给逆向回来,然后导入SQL文件来恢复错误操作 ...
- PLSQL_闪回删除FlashBack Delete表误删除如何进行恢复(案例)
2014-07-02 Created By BaoXinjian
- PLSQL_闪回删除FlashBack Drop表误删除如何进行恢复(案例)
2014-06-25 Created By BaoXinjian
- Oracle闪回操作
Oracle闪回操作 1. 记录当前时间或SCN 在数据库变动前记录时间或SCN SQL> select to_char(sysdate,'YYYY-MM-DD HH24:mi:ss') fr ...
随机推荐
- POJ-2378 Tree Cutting
题目大意:一棵n个节点的树,找出所有的点满足:删除它之后,产生的最大(这里节点数最多即为最大)新树中节点数不超n的一半. 题目分析:两次深搜,过程类似求重心. 代码如下: # include<i ...
- ps命令详解(转)
原文地址:http://apps.hi.baidu.com/share/detail/32573968 有时候系统管理员可能只关心现在系统中运行着哪些程序,而不想知道有哪些进程在运行.由于一个应用程序 ...
- EDIUS工程里面的素材保存方法
在实际使用EDIUS剪辑一段视频时,会有好多人问这样一个问题:EDIUS工程里面使用的素材不能自动复制到工程文件夹里面吗,难道要自己一个一个复制进去?面对这样的疑问,来看看小编是如何做的吧. 为了用户 ...
- 在Windows 10上安装Oracle 11g数据库出现的问题及解决
在Windows 10上安装Oracle 11g数据库,并且很多次出现过:当安装的进度条进行到快要结束的时候弹出一个提示框.如下: [Java(TM)2 Platform Standard Editi ...
- alpha预乘
将(r,g,b,a)变为(r*a,g*a,b*a,a)的操作称为alpha预乘. 对于alpha预乘的图片,应使用(One,OneMinusSrcAlpha)进行混合. 使用alpha预乘方式混合出来 ...
- nodejs 任务调度使用
使用的模块 node-schedule的使用 例子: 1:确定时间 var schedule = require("node-schedule");console.log(&quo ...
- 详尽介绍FireFox about:config
一.什么是about:config about: config: 是Firefox的设置页面,Firefox提供了不少高级设置选项在这里以便让你可以更加详细地控制Firefox的运行方式.官方不推荐 ...
- 【Reporting Services 报表开发】— 表达式
一.常用的SSRS原始函数可以打开文本框的表达式中看到,如图1 图1 如下为SSRS中设计报表时常用的运算函数: 运算符/函数 说明 + 前后位数字则为加法,前后为字符串则为链接符号 - 数值减法 * ...
- eclipse项目里面的类有时候会莫名其妙出现很多错误
由于eclipse的编译是基于时间戳的判断机制的.因此当你按build all的时候有些eclipse认为时间戳没有改变的类不会被编译.因此你可以先clean一下再编译.这个时候eclipse会将 ...
- DIV+CSS命名规范-转载1
命名规则说明: 1).所有的命名最好都小写 2).属性的值一定要用双引号("")括起来,且一定要有值如class="divcss5",id="divc ...