利用SQL日志找回丢失的数据
2006-06-20 18:11
387 查看
这几天碰到了我一生中最痛苦的事情,在对一个表中的一列数据进行update时,后来少带了个where语句,造成整列数据全部更新,也就是整列数据全部丢失,而以前又没有对次数据库进行备份,万分悲痛之下急忙上网找工具.
一共找到3个:
Log Explorer
Apex SQL Log
SQL Log Rescue
首先说第一个Log Explorer,第一个可能很多人都用过,我下载下来马上连上数据库,点view log,发现了很多条操作记录,不过不管怎么调,那日志的时间都是6月12日到6月16日,我不知道我的数据库日志为什么只从6月12日开始,请高手解释一下.言归正传,我仔细看那些操作的记录,有很多改动的数据都能看到,可是我改动的那列是ntext类型,数据无法看到,使用 undo和redo都无法找到我那ntext类型的数据,即使使用"export log records"和"recovery"里面的操作也无法找到丢失的ntext数据.万分悲痛之下只好找第二个了
第二个Apex SQL Log,和Log Explorer 差不多,看到的日志记录里没发现找到ntext的数据,后来使用"recovery wizard"里面选择恢复数据,它生成的sql里面的我修改的ntext字段全是0x000...这类二进制数据,原来ntext类型的存储和其他数据类型存储的方式不同,在数据库中ntext存储的只是存储ntext内容的指针,我试着用readtext 读取其中它给我一个指针的值,可惜读不到,进www.apexsql.com/中去咨询,原来这个软件在这个地方有个bug,当恢复ntext类型的时候,只给出一个指针是有错误的,根本无法恢复,他们说在下一个版本中才解决这个问题,没办法了.
第三个SQL Log Rescue,这个确实让我兴奋了一下,因为当我连上数据库读取日志时,发现了一些我改动过之前的ntext类型的值已经改动之后的值,他在改动的记录上还对这两个ntext类型的值进行对比,不过高兴没多久,我才发现我原来只可以找到几条这样的值,进官方主页一看,原来才知道,他有值是因为我update这条记录在前面的日志中还有insert的记录,可是我的日志的时间只有6月12日到6月16日的,前面的日志我不知道为什么会没有了,所以我只能找回几条记录.
总结:个人觉得Log Explorer让我这次没一点收获,Apex SQL Log 至少让我知道了我修改的ntext类型存储的地方,期待他下一个版本能找到,SQL Log Rescue让我恢复了几条数据,可惜日志不全,如果日志全的话完全全部恢复,希望高手替我解释一下.
下班前匆忙写的,很潦草,见谅
一共找到3个:
Log Explorer
Apex SQL Log
SQL Log Rescue
首先说第一个Log Explorer,第一个可能很多人都用过,我下载下来马上连上数据库,点view log,发现了很多条操作记录,不过不管怎么调,那日志的时间都是6月12日到6月16日,我不知道我的数据库日志为什么只从6月12日开始,请高手解释一下.言归正传,我仔细看那些操作的记录,有很多改动的数据都能看到,可是我改动的那列是ntext类型,数据无法看到,使用 undo和redo都无法找到我那ntext类型的数据,即使使用"export log records"和"recovery"里面的操作也无法找到丢失的ntext数据.万分悲痛之下只好找第二个了
第二个Apex SQL Log,和Log Explorer 差不多,看到的日志记录里没发现找到ntext的数据,后来使用"recovery wizard"里面选择恢复数据,它生成的sql里面的我修改的ntext字段全是0x000...这类二进制数据,原来ntext类型的存储和其他数据类型存储的方式不同,在数据库中ntext存储的只是存储ntext内容的指针,我试着用readtext 读取其中它给我一个指针的值,可惜读不到,进www.apexsql.com/中去咨询,原来这个软件在这个地方有个bug,当恢复ntext类型的时候,只给出一个指针是有错误的,根本无法恢复,他们说在下一个版本中才解决这个问题,没办法了.
第三个SQL Log Rescue,这个确实让我兴奋了一下,因为当我连上数据库读取日志时,发现了一些我改动过之前的ntext类型的值已经改动之后的值,他在改动的记录上还对这两个ntext类型的值进行对比,不过高兴没多久,我才发现我原来只可以找到几条这样的值,进官方主页一看,原来才知道,他有值是因为我update这条记录在前面的日志中还有insert的记录,可是我的日志的时间只有6月12日到6月16日的,前面的日志我不知道为什么会没有了,所以我只能找回几条记录.
总结:个人觉得Log Explorer让我这次没一点收获,Apex SQL Log 至少让我知道了我修改的ntext类型存储的地方,期待他下一个版本能找到,SQL Log Rescue让我恢复了几条数据,可惜日志不全,如果日志全的话完全全部恢复,希望高手替我解释一下.
下班前匆忙写的,很潦草,见谅
相关文章推荐
- 利用SQL日志找回丢失的数据的免费工具SQL Log Rescue
- 利用SQL日志找回丢失的数据的免费工具SQL Log Rescue
- SQL找回丢失的数据
- SQL的日志文件丢失,只有MDF文件,怎么把数据恢复
- 利用存储过程导出数据到sql脚本
- 往SQLiteDatabase利用API或普通SQL语句增删改查数据详解
- 移动硬盘恢复数据丢失能找回吗
- Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
- 在VB.NET中 用代码 利用SQL语句创建数据库、表、存储过程、视图、索引、规则、修改表、查看数据等的方法
- 工作日志之 SQL 存储过程返回XML数据集
- SQL 数据日志还原方法和工具介绍
- CK2255-以慕课网日志分析为例 进入大数据 Spark SQL 的世界
- 利用写SQL语句创建数据表
- 利用SQL*Loader将 Excel 数据导出到 Oracle 数据库中(转载)
- 大数据日志分析系统-python脚本利用es聚合计算
- 找回不小心丢失的历史数据
- Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
- sql不同数据处理方式完成同一处理结果对日志增长的影响
- SQLServer 工具箱v1.1(SQL脚本排序,日志清除,数据导入导出)附源代码
- SQLServer 工具箱v1.3(SQL脚本排序,日志清除,数据导入导出)附完整源代码