客户叫我删除掉一条记录,说因为流程走错了,给我发过来一串很长的中文,说把这个名称的记录删掉。
我直接用PL/SQL操作数据库,根据名字相等搜索,没有记录。因为这些记录的名称都是很相似的,都是类似于“关于下发2012年第一季度“畅享移动福生活”数据业务整合营销活动细则的通知……”之类,于是用like搜索,才出来一条记录,我也没注意看,直接就删了。
然后我登陆系统,进行查询,发现那条记录还在,把正常的记录给删了,而且被删的这条记录关联的流程还在审批中的。
马上想到数据恢复,Google一下Oracle数据恢复的,找到了OracleFlashback。网上资料说Oracle 10g以上的版本支持Flashback,心里有了希望,因为我的系统用的就是Oracle 10g。
不多说,立马按照教程操作。
1、执行 alter table table_name enable row movement;
2、执行 FlashBack table table_name to timestamp to_timestamp('2012-05-24 14:59:36','yyyy-mm-dd hh24:mi:ss');
看着这两条语句执行完毕,立马进行搜索!Thanks,刚被删除的那条记录恢复了!
写下此文,加深印象,以后操作数据库更加要小心翼翼了!
关于Oracle Flashback的相关知识以后时间再研究一下。上述SQL语句中的table_name是指要恢复数据的表,timestamp to_timestamp('2012-05-24 14:59:36','yyyy-mm-dd hh24:mi:ss')这个应该是指要恢复到某个时间。
看了sumsen的回复,如果直接使用上面的语句,是有可能会出现问题的。因为是恢复到某个时间点的数据,那在时间点之后插入的数据就会被覆盖掉。除非能保证在时间点之后没有新的数据插入到表中。
比较合理的方法是先从闪回区查找出被误删的数据,再将被误删的数据插入到原来的表中。
1、执行 select * from A as of timestamp sysdate-10/1440;
该SQL语会查找出距离现在10分钟之前A表的所有数据。
sysdate-10/1440表示距离现在10分钟之前,1440这个数字表示一天有1440分钟。
如果不写距离时间,SQL语句可写成:select * from A as of timestamp sysdate;表示查找出到现在为止A表中的所有数据。
2、从以上查找出的数据中找出被误删的数据,再插入到原来的表中就可以了。
分享到:
相关推荐
Oracle数据库表数据误删还原的方法,在一定时间内表数据误删除了恢复数据的方法
在很多时候由于操作失误,程序出错会误删表或数据,本文档可以将oracle数据库误删表,或者误删数据,即时恢复。
Mysql数据库忘记备份数据库,通过.frm和.ibd文件恢复数据... (3):恢复表数据(在恢复表数据的时候,首先需要解除当前创建的表与默认生成的.ibd文件间的关系,接着将要恢复数据表的.ibd文件与当前创建的表联系起来即可)
sql 存储过程 自动备份指定时间内A数据库表数据到B数据库表
归档日志恢复被误删的数据
SqlServer无备份下误删数据恢复 SqlServer 数据恢复 数据恢复工具 SqlServer2012之前版本
实战演练MySQL被误删的表、库恢复 将数据库恢复到指定的时间点
里边包含俩个数据恢复软件,一个是企业版,一个是个人版,支持数据库恢复,文件恢复,邮件恢复,office恢复,使用教程地址:https://blog.csdn.net/xujiahn/article/details/100701849
“备份”是数据的副本,用于在系统发生故障后还原和恢复数据。 存储介质故障 用户错误操作 服务器彻底瘫痪 自然灾害 ;备份类型通常主要有4种类型存储介质故障。 完整数据库备份 所有数据库对象、数据和事务日志 可以...
开了一种嵌入式数据库中数据恢复的方法和装置,该方法包括步骤:判断主数据库和备份数据库中的数据文件、数据文件结构是否错误;当主数据库中的数据文件和/或数据文件结构错误、备份数据库中的数据文件和数据文件结构...
oracle 数据恢复 误删恢复 111111111111111111111111111111111111111111111111111111111111111111111111
oracle中数据delete且commit 恢复误删数据
Log Explorer主要用于对MSSQLServer的事物分析和数据恢复。你可以浏览日志、导出数据、恢复被修改或者删除的数据(包括...l 通过有选择性的取消或者重做事物来恢复数据 l 恢复被截断或者删除表中的数据 l 运行SQL脚本
行业分类-物理装置-一种数据库误删数据的恢复方法、系统、终端及存储介质
vs2008C#操作Mysql创建数据库,数据表,增、删、改数据实例。
sqlserver2012及以下版本误删除数据还原 2012版本亲测可用。 2016版本会出现无法连接实例的情况。不清楚是我本地环境问题还是此2014版本软件无法支持sql 2016 后续如果有出新版本,再重新上传
主要为大家详细介绍了SQL Server 2008数据库误删数据如何进行数据恢复的方法,感兴趣的小伙伴们可以参考一下
成功恢复删除LOG文件后的数据库操作全部步骤--自已亲身经历,绝对可用有效。数据库日志文件有救了,再也不用担心数据库日志问题了。
Data row to insert sql是一个小的工具软件,可以将数据库表中指定数据转换成相应的insert sql语句。目前支持的数据库类型为oracle,db2,ms sql server。 目前还有一些缺陷,还有待完善,具体如下: 1、对ms sql ...
保证数据的安全性是DBA第一要务: (0)理论上可以恢复+跑路; (1)全量备份+增量备份+定期演练; (2)1小时延时从库; (3)双份1小时延时从库+提高资源利用率;