本文共 722 字,大约阅读时间需要 2 分钟。
今天遇到一个问题,数据库有几张表的数据被清除了。因为数据是昨天晚上被删除的,当时没有用户访问,所以根据日志备份就可以将数据还原,没有数据损失。但是是谁删除了数据呢?
在2008之前有很多工具都可以分析数据库的在线日志和备份文件,但是支持2008以及更高版本的不是很多。这里我是用了ApexSQL Log 2011,关于ApexSQL Log 2011的功能:
ApexSQL Log is a that allows viewing transaction log data in read-friendly format. Audit and undo SQL database changes of your choosing. Determine who changed the data and when the change occurred. log to find out who created, changed or dropped a database object
这个正好是我所需要的,而且有14天的免费试用版,功能也没有限制。下载之后安装,然后打开在线日志同时选择了问题发生之后的日志文件进行分析,轻松的找出了当时执行的语句。结果并不是我们想象的数据删除,而是应用程序的某个功能被同时无误使用了,结果导致数据库表被DROP然后重新创建。
选择在线日志和备份文件界面如图:
有一个缺点是显示栏位有点少,如果能够显示当时执行的应用程序名称就更完美了。不过,对于数据库日志分析确实是一款不错的产品。
本文转自 lzf328 51CTO博客,原文链接:
转载地址:http://nzhcx.baihongyu.com/