ORACLE数据恢复方法(提交事务也可以)
今天在操作数据库的时候,发现数据操作错误,想要恢复,但是没有用事务,按理说,设置成不默认提交事务,此时所做的各种操作都没有反应到数据库中。这时,你可以rollback事务,撤销所有未提交的修改。不过,一旦commit了的话,就真没办法撤销了。好在oracle还有时间戳方法。
第一种方法:
1.打开Flash存储的权限
ALTER TABLE tablename ENABLE row movement ;
2.把表还原到指定时间点
flashback table tablename to timestamp to_timestamp(''2011-02-28 10:40:00'',''yyyy-mm-dd hh24:mi:ss'');
后面的参数为要还原的时间点
第二种:利用ORacle的快照进行查找某个时间点的数据
select * from tablename AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '100' MINUTE)
or
select * from tablename as of timestamp to_timestamp(2011-05-21 11:40:00','YYYY-MM-DD HH24:MI:SS');
这样可以查询到指定的时间段的数据,再把查询到的数据复制到原来的表中。
例:
如果我们在前5分钟误删除了表emp中的数据,我们可以进行如下操作:
找回原始数据
Select * from emp as of timestamp sysdate - 6/1440
删除原来的表 删掉后创建一个备份表
Create table emp as (select * from emp as of timestamp sysdate - 6/1440);
可以做差,找到删除的记录=6分钟前的原始数据—现在表中的记录 再插入原来的表中提交
Insert into emp
Select * From
(
select * From emp as of timestamp sysdate - 6/1440 Minus Select * from emp)
--timestamp(ags) 方法
--interval(时间间隔)类型用来存储两个时间戳之间的时间间隔
--当要回复被删除的数据的时候
--查询500分钟之前的数据
select * from emp as of timestamp(systimestamp - interval '500' minute)
--查询600秒之前的数据
select * from emp as of timestamp(systimestamp - interval '600' second)
--查询5小时之前的数据
select * from emp as of timestamp(systimestamp - interval '5' hour)
--查询一天之前的数据
select * from emp as of timestamp(systimestamp - interval '1' day)
--查询1分钟前的数据 (1天=1440分钟) date-number=date
select * from emp as of timestamp sysdate - 1/1440
--查询5小时前的数据
select * from emp as of timestamp sysdate - 5/24
--查询 5小时内数据=内前删除的5小时前表中的数据-现在表中的数据
--minus减去
select * from
(select * from emp as of timestamp sysdate -5000/1440 minus select * from emp)
从9i开始,oracle提供了闪回(flashback)功能。使用flashback table语句从撤销段中(undo segmeng)读取改表的过去映像,同时利用oracle9i中引入的回闪查询功能重建表行。Undo_retention给出了回闪支持的最小时间。也就是说flashback最少可以支持undo_retention给出的时间,如果系统比较闲,则可以回闪更长的时间。如果系统处于忙时,有可能重用还没有达到undo_retention时间吸纳是的数据空间。注意:使用闪回的一个前提是表不能进行ddl操作,不但不能对ddl操作进行回闪,而且,无法闪回到ddl操作以前的数据了。
注意:不启动行移动功能,不能闪回表
Alter table emp enable row movement;
这个命令的作用就是允许ORACLE修改分配给行的rowid。在ORACLE中,插入一行时就会为它分配一个rowid,而且这一行永远拥有这个rowid。闪回表处理时会对EMP表完成DELETE 操作,并且重新插入行,这样就会为这些行分配一个新的rowid。要支持闪回功能就必须允许ORACLE执行这个操作。
原文:http://blog.csdn.net/jiajane/article/details/49280277
ORACLE数据恢复方法(提交事务也可以)的更多相关文章
- oracle数据恢复方法
https://www.cnblogs.com/hqbhonker/p/3977200.html
- PL/SQLDeveloper导入导出Oracle数据库方法
前一篇博客介绍了Navicat工具备份Oracle的方法,这篇博客介绍一下使用PL/SQL Developer工具导入导出Oracle数据库的方法. PL/SQL Developer是Oracle数据 ...
- php操作oracle的方法类集全
在网上开始找php中操作oracle的方法类~ 果然找到一个用php+oracle制作email表以及插入查询的教程,赶忙点开来看,从头到尾仔细的看了一遍,还没开始操作,便觉得收获很大了.地址在此:h ...
- C#连接Oracle的方法
C#连接Oracle的方法 方法1: System.Data.OracleClient oracleConnectionString : data source = orcl;user id= sco ...
- Oracle 分页方法研究
1.Oracle 中的三大分页方法 1.1.通过分析函数分页 1.2.通过 ROWNUM 分页 1.3.通过 ROWID 分页 2.Oracle 分页解决方案浅析 2.1.纯后端代码完成分页 2.2. ...
- V7000存储数据恢复_底层结构原理拆解及Mdisk磁盘掉线数据恢复方法
Storwize V7000(也就是我们常说的V7000)是新推出的一款中端存储系统,这款系统的定位虽然在中端,但是Storwize V7000提供有存储管理功能,这一功能以前只有高端存储才拥有(例如 ...
- Oracle系列(一): Oracle数据恢复
Oracle数据恢复 在使用Oracle的时候,突然一部小心update或者delete全部数据后怎么办? select * from table as of timestamp to_timest ...
- Centos7下安装部署oracle数据库方法及问题汇总
目标:在centos7上配置oracle数据库服务器,并在win7上面使用pl/sql成功访问该oracle数据库 系统环境: 服务器:centos7 64位 客户端:win7 64位 注意cneto ...
- .NET连接Oracle的方法
.NET连接Oracle的方法 方式1:直接利用.NET的oracle驱动连接 引用System.data.oracleclient; using System.data.oracleclient; ...
随机推荐
- (一)cygwin和vim——hello world!
好吧,我现在初出茅庐,一无所有,只有一台win xp.做什么呢?要不要试试Unix命令行编程的感觉,想到就做.Just try! 1.首先安装cygwin,最好是选择离线安装包. 2.默认选择安装所有 ...
- device not found解决方案
今天在使用cordova tools进行真机调试的,报了一个错:device not found; 字面意思就是没有发现设备,这时候可以首先尝试重启adb服务 C:\Users\username\Ap ...
- PUTTY工具的使用
Putty工具包简单使用 一.Putty简介 Putty是一款远程登录工具,用它可以非常方便的登录到Linux服务器上进行各种操作(命令行方式).Putty完全免费,而且无需安 装(双击即可运行),支 ...
- springboot 传List参数
最近项目有个需求,前台需要传list参数请求controller接口,一开始直接使用ResponseBody注解,但实践下来发现参数没有传到controller. 现将处理方式记录如下: 1.前台 ...
- VS2013 FFmpeg开发环境配置
1.下载ffmpeg包(dll.include.lib) https://ffmpeg.zeranoe.com/builds/ 有3个版本:Static.Shared和Dev St ...
- 使用EndNote在Word中插入参考文献
以百度文库为例,首先找到我们要插入的参考文献,比如 搜索关键词,然后下需要的论文下面点击引用 得到 点击下面导出链接的EndNote,会下载一个.enw文件 找到此文件并双击打开后即已经导入到EndN ...
- 动态规划状态压缩-poj1143
题目链接:http://poj.org/problem?id=1143 题目描述: 代码实现: #include <iostream> #include <string.h> ...
- Redis+Shiro+Spring-data-redis,共享Session
环境:centos7,Java1.8+,一个Nginx,两个Tomcat,一个Redis. 关于共享session的问题大家都应该知道了,传统的部署项目,两个相同的项目部署到不同的服务器上,Nginx ...
- HDU 1175 连连看 (DFS+剪枝)
<题目链接> 题目大意:在一个棋盘上给定一个起点和终点,判断这两点是否能通过连线连起来,规定这个连线不能穿过其它的棋子,并且连线转弯不能超过2次. 解题分析:就是DFS从起点开始搜索,只不 ...
- Codeforces 1096D Easy Problem 【DP】
<题目链接> 题目大意: 给你一个字符串,每个字符有权值,问现在删除字符串中的字符使其中没有"hard"的最小代价是多少. 解题分析: 用DP来求解: 转 ...