Sqlserver2008误操作数据(delete或者update)后恢复数据(转)

实际工作中,有时会直接在数据库中操作数据,比如对数据进行delete或者update操作,当进行这些操作的时候,如果没有加上 where条件或者where条件不合理,那么导致的结果可想而知,如果操作的又是线上数据库,那么这个后果将会非常严重。当事情发生后,我们要想办法补 救,针对于sqlserver2005数据库,有个很出名的工具Log Exploer,具体操作使用大家可以自行搜索;针对于sqlserver2008,也有这样的工具,但是大多是需要付费的...我们尝试用 sqlserver的事务日志来恢复这些受影响的数据。

   用事务日志恢复数据,需要两个必要条件:

   1,正确的完整数据库的最后一次备份

   如果没有数据库完整备份,是不能做事务日志备份的,所以建议创建数据库时,恢复模式一项,应当选择'完整'。

   2,正确的即时点

   即所要恢复到数据的时间点,这个时间点一般选择误操作发生时间往前一点的时间点,所以当误操作发生时,应尽量记下这个时间点,不然可能导致恢复的数据不够准确。比如,

误操作发生于16:00,这个时间点我们可以选择15:59,如果选择的太靠前,比如15:30,那么15:30--15:59这段时间内的数据就不能被恢复了。

    下面记录具体的操作步骤:

   首先新建一个数据库dbtest,注意创建数据库时恢复模式一项选择'完整',在数据库中新建一个Table_1,并插入一些数据,然后对该数据库做一个完整备份。

    

    这个备份,主要是模拟实际工作中对数据库的备份,实际中由于数据库可能很大,所以一般备份是一天或者两天进行一次。

    备份成功后,接着再往Table_1中插入几条数据,  模拟在原数据库基础上新增加的数据,然后执行一个sql语句:delete from Table_1,模拟误操作,并记录下时间,比如16:00.误操作发生后,我们要赶紧进行事务日志的备份,我们就是根据此备份来还原数据的。

    

    事务日志备份完后,我们可以新建个数据库dbtest1,然后把之前备份的数据库在新建的数据中进行还原,之所以这么做,是因为用事务日志 恢复数据库需要获得数据库的独占访问权,如果在原库上进行恢复,那么这需要对原库停止对外服务,但是这样,可能会导致线上系统不能正常运行,造成非常大的 影响,所以我们新建个数据库用作数据的还原,而不影响线上系统的正常进行。最后把新库中还原回来的数据,再导入到原库中。

    对dbtest1进行还原时,注意"选项"的配置

    

    数据库还原成功后,此时dbtest1应为正在还原的状态:,接着对数据库进行还原:任务—>还原—>事务日志,

    

时间点选择误操作之前的一个时间点,比如15:59:59,然后确定,完成全部数据恢复操作。  

下面的一段话源自其他帖子:

1, 这是一般大型网站数据安全的一个办法,因为数据库比较大(可能有几百G)数据,做一次完整备份时间很长,而且影响数据库服务器的性能, 为保证数据安全,大多采用完整备份+事务日志备份来保证数据安全。例如:一天做一次或者2天做一次完整备份,几个小时内做一次日志备份。(当然可以用写一 个job来实现)

2,如SQL server 2005里的镜像就是采用的这种事务日志同步的方法保证数据的同步。

3,如果恢复的日志数据出现”LSN“太早和太晚说明了事务日志间的不连续。这时要注意备份 的时间和顺序。

  参考:

  dudu:实战 SQL Server 2008 数据库误删除数据的恢复

SQLServer 2008以上误操作数据库恢复方法——日志尾部备份

通过日志恢复MSSQL数据例子

  SQL SERVER 数据误操作的恢复(转)

转:SqlServer2008误操作数据(delete或者update)后恢复数据的更多相关文章

  1. SqlServer2008误操作数据(delete或者update)后恢复数据

    实际工作中,有时会直接在数据库中操作数据,比如对数据进行delete或者update操作,当进行这些操作的时候,如果没有加上where条件或者where条件不合理,那么导致的结果可想而知,如果操作的又 ...

  2. delete和truncate/drop恢复数据的过程

    使用myflash工具恢复delete操作数据,myflash工具注意事项: 该工具注意事项 1.binlog格式必须为row,且binlog_row_image=full 2.仅支持5.6与5.7 ...

  3. Linux误删文件后恢复数据

    在Linux下,基于开源的数据恢复工具有很多,常见的有debugfs.R-Linux.ext3grep.extundelete等,比较常用的有ext3grep和extundelete,这两个工具的恢复 ...

  4. Oracle误删除数据恢复。Oracle删除后恢复数据

    发现误删除时需要及时处理,速度要快,姿势要帅.晚了就恢复不了额 1.查询时间 以确保恢复到某个时间点 select SQL_TEXT, LAST_ACTIVE_TIME from v$sqlarea ...

  5. SqlServer触发器判断对表操作类型(增、删、改)并将修改后的数据映射到新表

    该文章为原创,日后可能会根据实际开发经验和网友评论,进行相应地方修改,为获得最新博客动态,望在转发博客的时候注明出处. 触发器要实现的功能: (1)获取对表Table1数据操作操作类型(insert. ...

  6. 操作数据(insert、update、delete)

    插入数据 使用Insert Into 插入 if(exists(select * from sys.databases where name = 'webDB')) drop database web ...

  7. Oracle 增删改(INSERT、DELETE、UPDATE)语句

    Ø  简介 本文介绍 Oracle 中的增删改语句,即 INSERT.DELETE.UPDATE 语句的使用.是时候展现真正的技术了,快上车: 1.   插入数据(INSERT) 2.   修改数据( ...

  8. update 后没有加where条件解决办法

    MySQL 误操作后数据恢复(update,delete忘加where条件) 在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句写的有问题导致服务器出问题,导致资源耗尽.最危险的操 ...

  9. svn local delete, incoming delete upon update 解决办法

    经常有人会说,树冲突是很难解决的一类冲突,其实一旦了解了其原理,要解决也不难.先回顾下对于树冲突的定义.     树冲突:当一名开发人员移动.重命名.删除一个文件或文件夹,而另一名开发人员也对它们进行 ...

随机推荐

  1. mac ide

    常用IDE xcode sublime text eclipse xampp + phpstorm sql客户端:sequel pro 虚拟机:parallels desktop sftp客户端:Cy ...

  2. 推荐一个CodeProject上的SlideForm控件

    CodeProject有一篇文章介绍了怎么实现一个SlideForm,非常不错,收藏在此. http://www.codeproject.com/KB/dialog/csslideform.aspx ...

  3. oracle连接由于防火墙设置导致超时的问题

        当应用程序使用数据库连接池进行数据连接时,防火墙的设置有可能会导致连接出现超时或者被重置的问题.当从数据库读数据的时候 有可能会 Connection timed out, 这是由于应用会缓存 ...

  4. 最小投票BZOJ 1934([Shoi2007]Vote 善意的投票-最小割)

    上班之余抽点时间出来写写博文,希望对新接触的朋友有帮助.今天在这里和大家一起学习一下最小投票 1934: [Shoi2007]Vote 好心的投票 Time Limit: 1 Sec Memory L ...

  5. 【Objective-C】04-第一个OC程序解析

    说明:这个Objective-C专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序猿,可以高速上手Objective-C.假设你还没有编程经验,或者对Objective-C.iOS开发 ...

  6. 内核映像的形成 —— KBuild体系

    1. http://blog.csdn.net/yunsongice/article/details/6046537 2. http://blog.csdn.net/yunsongice/articl ...

  7. ABAP FIELD-SYMBOLS 有大作用- 将没有可改参数的增强出口变得也能改主程序的值了

    看下图代码: report  z_xul_test2 中 定义了 全局变量 G_DATA1 , 分别调用了 z_xul_tes1 中的 form  和 function zbapi_test , 这两 ...

  8. cocos2d-x混合BlendFunc的使用

    1.什么是混合模式 “混合”是指两种颜色的叠加方式.在新图片将要渲染画到屏幕上的时候,将用在新图片中的红.绿.蓝和透明度信息,与屏幕上已经存在的图片颜色信息相融合. 说的具体一点,就是把某一像素位置上 ...

  9. NSURLConnection、NSURLSession

    NSURLConnection   1.准备网络资源地址:URL 注意:由于URL支持26个英文字母,数字和少数的几个特殊字符. 因此对于URL中包含非标准URL的字符,需要进行编码. iOS提供了函 ...

  10. python(1) - 安装篇

    本次主要在windows下安装pyton2 和python3,实现 在cmd中输入 ptynon进入python2 在cmd中输入python3进入python3 第一步 当然是要下载python安装 ...