SQL误删数据,跪求查询恢复方法

Darkness0018 2013-03-29 03:24:34
事情是这样的,我这里有一个正式在用的企业数据库,之前运行很多年都没有发生过这种问题,就是突然某一天,有一些表里的重要数据被删除了,这些数据都是涉及财务方面的,因为业务系统的BUG和不完善的地方,所以后台数据库是我们小组的成员都经常要操作的,这么多年都没事,也没有做类似安全管理之类的防护,现在出了这种事情,虽然可以通过还原备份数据库的方法来把删除的数据找回来,但找不出当初操作的SQL语句,因为不排除恶意操作的可能,用了Log Explorer,但也是一头雾水,现在就是想能找出当初误操作的SQL语句,最好还能定位到误操作的客户端机器,跪求各位大神指点!
...全文
409 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqxiaozi76 2013-04-01
  • 打赏
  • 举报
回复
如何导出SQL数据并进行备份?
Darkness0018 2013-04-01
  • 打赏
  • 举报
回复
其实我主要是想问,能不能追查到执行SQL的客户端IP,以及执行的错误的语句,用profiler我知道,但我不能总一天到晚开着profiler啊。。。。有没别的办法能看到,我知道VM的recoverpoint能做到,但不用第三方的软件能不能实现呢?利用数据库自身机制的前提下?
最后一只恐龙 2013-03-31
  • 打赏
  • 举报
回复
没有审计,如果数据很重要,就要用手工一条条恢复了。春节的时候刚遇到过,不过那是我不小心,没看清是在选中状态下执行了一个Update语句,结果Where被忽略了,整个表的数据都变成了同一个值,我的处理方法是: (1)马上备份日志文件和数据文件,拷贝到另一台机器,当前机器继续服务(最好做个自动填写缺省值的时间字段,这样方便合并)。 (2)用Log Explore打开备份的数据,根据出错的大体时间定位,然后一条条找,找到有很多连续的、涉及那个出错的表的修改的地方,就是执行Update的地方了。 (3)逐条查看修改记录,能看到Update的旧值和新值,把新值改回旧值就可以了。 (4)把修改后的数据合并回原数据库。 我从早上9:00做到第二天凌晨5:00,大功告成,就是眼睛有些受不了了。
---涛声依旧--- 2013-03-29
  • 打赏
  • 举报
回复
1楼的方法,没试过,先收藏,以后有空再试试
KevinLiu 2013-03-29
  • 打赏
  • 举报
回复
appex SQL也可以,前提是看你数据删除了多久,数据库有没日志备份,如果是SIMPLE的话,估计没救。
Darkness0018 2013-03-29
  • 打赏
  • 举报
回复
使用LOGEXPLORER,当进行到点view log的地方时,弹出对话框提示:No log records found that match your selection! 什么都出不来。。。
Q315054403 2013-03-29
  • 打赏
  • 举报
回复
既然在用LOGEXPLORER了,為什么要一頭霧水??
szm341 2013-03-29
  • 打赏
  • 举报
回复
自带的就可以,第三方的要钱呵呵 看看有关profiler,跟踪方面的资料吧
發糞塗牆 2013-03-29
  • 打赏
  • 举报
回复
引用 3 楼 Darkness0018 的回复:
我也常听人说审计功能,请问下这个审计是具体什么东东?是有专门的工具,还是SQL自带的功能?
sql server自带的,可以看联机丛书的说明
Darkness0018 2013-03-29
  • 打赏
  • 举报
回复
我也常听人说审计功能,请问下这个审计是具体什么东东?是有专门的工具,还是SQL自带的功能?
szm341 2013-03-29
  • 打赏
  • 举报
回复
如果没做审计的话应该是查不到的,以前的估计找不到了 你们可以针对几张重要的表或者全库操作做一个审计功能,用以记录详细操作
發糞塗牆 2013-03-29
  • 打赏
  • 举报
回复
如果log explore搞不定的话,可以尝试我的方法: http://blog.csdn.net/dba_huangzj/article/details/8491327

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧