使用Oracle11g的闪回查询技术解决了一个误DELETE表数据的问题
来源:互联网 发布:长沙知豆电动车在哪租 编辑:程序博客网 时间:2024/06/04 19:02
转载自:http://blog.csdn.net/haofeifei6/article/details/36185065
使用Oracle11g的闪回查询技术解决了一个误DELETE表数据的问题
一、环境:
数据库版本:Oracle11.2.0.3
操作系统版本:Redhat Linux 企业版5.5
二、问题症状:
今天上午大约10:30左右,业务人员在做业务时,突然发现操作界面中的菜单名称莫名其妙的没有了,后来通知后台数据库维护人员后,查询相关菜单表T_MENU与T_ROLE_MENU表,发现表里面的数据都没了
三、问题分析:
由于菜单表里的数据没有才导致如上问题,初步怀疑有人误操作删除数据后,并提交了,目前还没有时间来查明是谁删除的,恢复数据优先,这里想到了两种方法,由于有RMAN备份,但是由于只是两个表的数据,RMAN为物理备份,恢复起来比较麻烦,由于是Oracle11.2.0.3版本,所以考虑使用闪回查询技术来恢复。
四、解决方案:
由于发现的较为及时,可以考虑使用闪回查询技术来恢复数据,闪回查询技术主要是利用UNDO表空间里的数据来查询出某个表某个时间点之前的数据,取决于UNDO表空间的大小,以及Undo_retention等参数的设置,简单一点说就是如果故障时间长,可能里面的数据就没了,再查询就会报ORA-01555错误,如下所示:
ORA-01555: snapshot too old: rollback segment number 5 with name "_SYSSMUS 4011504098$"
具体的处理方法为如下:
1.利用闪回查询技术查询删除时间点之前的表中数据,下面语句需要根据实际情况来调整时间:
select * from t as of timestamp to_timestamp('2014-07-01 09:35:00', 'yyyy-mm-dd hh24:mi:ss');
2.如果数据都正确后,将数据插入到表中:
insert into t select * from t as of timestamp to_timestamp('2014-07-01 09:35:00', 'yyyy-mm-dd hh24:mi:ss');
- 使用Oracle11g的闪回查询技术解决了一个误DELETE表数据的问题
- 使用Oracle11g的闪回查询技术解决了一个误DELETE表数据的问题
- oracle11g分页优化,rowid和rownum的性能比较,解决越往后数据查询越慢的问题
- 解决查询重复数据问题的一个特列
- [原]用c#做了一个桌面程序用来分离excel文件里的数据时出现“操作必须使用一个可更新的查询”错误的解决
- 轻松解决oracle11g 空表不能exp导出的问题
- 解决oracle11g 空表不能exp导出的问题
- 轻松解决oracle11g 空表不能 exp 导出 的问题
- 解决oracle11g 空表不能exp导出的问题
- 轻松解决oracle11g 空表不能exp导出的问题。
- 轻松解决oracle11g 空表不能exp导出的问题。
- 轻松解决oracle11g 空表不能 exp 导出 的问题
- 轻松解决oracle11g 空表不能exp导出的问题。
- 轻松解决oracle11g 空表不能 exp 导出 的问题
- 解决oracle11g数据库中空表exp无法导出的问题
- 解决Oracle11g空表无法导出的问题
- 解决oracle11g通过exp无法导出空表的问题
- 轻松解决oracle11g 空表不能exp导出的问题
- AsyncTask实现的原理
- 软件设计模式之Singleton模式
- Axture--SVN共享项目
- Objective-c 数字对象(NSNumber)
- Oracle Instanc Client安装命令工具
- 使用Oracle11g的闪回查询技术解决了一个误DELETE表数据的问题
- Android 获得view的宽和高
- linux常用命令大全
- Oracle数据库连接异常:ORA-12505 TNS:listener does not currently know of SID 。。。。
- 《常见计算机术语缩写》
- 如何禁用Windows错误报告
- qt 之 macro
- hashcode的简单简析
- 80端口被NT kernel & System 占用pid 4