`
free_bird816
  • 浏览: 197217 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

数据库在误操作下,日志恢复

阅读更多

在使用了updata,delete,或者其他情况让数据库遭到破坏时,可以使用下列方法进行恢复,前提是要有上次的备份,并且要对现在数据库的日志进行备份。

遇到数据库误操作的时候,千万别着急,不要用上次的备份直接恢复数据库,这样导致日志也被覆盖。具体操作,看下面的例子

 


前提条件:myBBS是数据库test中的一个表,

          数据库test的Recovery Model为Full,Auto Close,Auto Shrink两个选项未选中。

          数据库test的data files和log files均为默认的自动增长状态。

 

 

很多做开发的会直接在生产数据库上SELECT、UPDATE、DELETE数据,突然某天一个不小心、脑子一迷糊,就删除了一个关键的数据表,怎么办?

告诉你一个办法,我自己用过一次 :(    帮别人恢复用过一次 ^_^

必要条件:必须有一个误操作之前的数据库的完全备份,且在备份之后没有清过数据库日志。如果你没有完全备份,或者你轻信别人胡言乱语而清掉了数据库日志,那就没救了。


假设误操作的数据库名为 yddata

1、备份误操作后的数据库的日志:

   backup log yddata to disk='d:\db_log.bak'

2、恢复之前做的完全备份,假设该完全备份的文件名为 d:\db_old.bak

   restore database yddata_2 from disk='d:\db_old.bak' with norecovery

   注意:恢复成的数据库名为 yddata_2,不要覆盖正在使用的库

3、最后一步:

   restore log yddata_2 from disk='d:\db_log.bak'
        with stopat='2007-04-14 12:30:00'

   stopat 代表要将数据库恢复到哪一时刻的状态


其实原理很简单:相当于在之前的备份的基础上将备份之后的操作重新做了一遍。

A:2004/10/13,16:00进行数据库备份,backup database test to disk='d:\db\1600.bak' with init

B:2004/10/14,13:00对数据库进行了update,delete等操作;

C:2004/10/15,18:00使用delete mybbs where id>300时,语句误写成delete mybbs,因而删除了表mybbs中的所有数据。

 

现在在C点,C点对数据库进行了误操作,我们希望数据库能够恢复到C之前的状态,比如恢复到10月15日17:59分的状态。

要恢复数据库B点,使用的是A点备分的数据库1600.bak;而使用的日志备分是最新的备分1820.logs;因而进行如下操作:

 

--备分日志:

BACKUP LOG test TO DISK='d:\1820.logs' WITH INIT

 

--恢复数据库1600.bak,使用WITH NORECOVERY参数:

RESTORE DATABASE test from disk='d:\db\1640.bak' WITH NORECOVERY

 

--使用日志恢复数据库到10月15日17:59分:

RESTORE LOG test
        FROM disk='d:\1820.logs' WITH RECOVERY,STOPAT='10/15/2004 17:59'

 

上面的三条Transact SQL语句的对应过程:

      1.恢复数据库到A点;

      2.执行A-B之间的log记录,把数据库恢复到B点.

 

 

       这样就恢复数据库到了指定的时间点。如果恢复不成功,可能的原因是:1.未使用正确的备分数据库;2.数据库选项选中了Auto

分享到:
评论

相关推荐

    SQLserver日志恢复工具 v1.0.zip

    SQLserver日志恢复工具适用版本SQL2005或SQL2008版本,用于查看日志和恢复误删除数据,针对误删除MSSQL数据行的恢复。主要针对deletefrom 语句。 SQLserver日志恢复工具具体使用简介: 程序功能:找回误删除的数据...

    数据库误操作 数据恢复软件 logexploer4sql321

    数据库误操作删除的数据,可通过logexploer4sql321对数据库日志文件对删除的数据进行恢复,简单易用,内包含英文版的说明文档。

    MySQL_Cluster集群数据库误操作恢复方法研究

    对 MySQL Cluster 集群数据库误操作的一些预防措施和误操作后进行数据恢复的三种方案:通过解析二进制日志生成逆向操作脚本进行恢复、通过全库备份及二进制日志进行恢复、通过延迟备库及二进制日志进行恢复,并给出...

    使用binlog日志恢复MySQL数据库删除数据的方法

    本文主要通过实际操作说明对binlog日志恢复MySQL数据库删除数据的方法进行说明,内容主要包括MySQL数据库binlog日志查询、恢复等相关介绍,希望对大家在工作及生活中遇到的此类问题有所帮助,如需操作指导,可留言!

    MySQL 数据库误删除后的恢复方案

    • 本案例适用于人为 SQL 语句造成的误操作或者没有主从复制等的热备情况宕机时的修复。 • 恢复条件为 MySQL 要开启 binlog 日志功能,并且要全备和增量的所有数据。 • 恢复时建议对外停止更新,即禁止更新数据库...

    数据库灾难性恢复(数据库技术;灾难性;恢复;数据备份)

    随着数据库技术在各个行业和各个领域大量广泛的应用,在对数据库应用的过程中,人为误操作、人为恶意破坏、系统的不稳定、存储介质的损坏等等原因,都有可能造成重要数据的丢失。一旦数据出现丢失或者损坏,都将给...

    一款很好用的sql server日志恢复工具

    很好用的日志恢复软件,能恢复误操作更改的数据库数据。

    成功恢复删除LOG文件后的数据库操作全部步骤--自已亲身经历

    成功恢复删除LOG文件后的数据库操作全部步骤--自已亲身经历,绝对可用有效。数据库日志文件有救了,再也不用担心数据库日志问题了。

    MS SQL误操作恢复/日志记录查看 汉化破解版

    MS SQL误操作恢复/日志记录查看 汉化破解版,实时查看谁动了你的数据库,一目了然。当你自己执行语句出现失误,可以进行撤销操作,避免数据的不准确,是很好的工具!操作简单,一用就会!

    ApexSQLLog2014 sql数据库日志恢复工具

    ApexSQL Log是为数据库开发用户打造的一款实用误操作恢复工具,软件可以帮助用户阅读SQL事务日志以审核更改和回滚事务,可以有效地找回丢失或者修改的数据库数据,支持SQL Server 2008、2005等版本

    赤兔Oracle数据库恢复软件 v11.6.zip

    22.支持在没有SYSTEM表空间和数据字典损坏的情况下恢复数据,在没有数据字典可用时,EOR能够自动判断数据的类型 23.支持10g及以上的大文件(BigFile)表空间 24.全面支持64位系统,支持超过4G大小的数据文件。 25....

    日志恢复MSSQL数据.

    mssql2008测试通过 使用步骤: 1.确认数据库之前有完整备份,并且数据库-属性-选项-恢复模式-完整 2.记录出错时间也就是要恢复的时间点 3.做备份日志 4.恢复日志 ok,搞定,恢复到误操作之前的数据。

    天盾Oracle数据库恢复软件 v1.1.zip

    天盾oracle数据库恢复软件是一款针对oracle数据库在磁盘中被删除,以及误格式化等情况而设计的专门的数据库恢复软件。 软件采用最新的碎片级恢复技术,可以在文件系统或者文件破坏严重的情况下完美恢复客户的数据。...

    SQL SERVER 数据库备份与恢复

    在对SQL SERVER 数据库操作过程中,一定要作好对数据库的经常性备份操作,及时对误操作数据后针对数据库进行恢复处理。手工操作都很简单,因此下面详细说下通过SQL语句对数据库的备份、恢复的方法。第一种是通过备份...

    MySQL执行delete误删除数据恢复

    当误执行了 DELETE 命令删除了数据后,可以考虑以下方法进行数据恢复: 立即停止对数据库的写入操作:一旦发现误删,应立即停止对数据库的写入操作,以免新的数据覆盖被删除的数据。 使用备份:如果你有数据库备份...

    sqlserver数据库恢复工具

    ApexSQL Log 2018是一款实用的sql数据库误操作恢复工具,之前小编为大家提供过ApexSQL Log 2016版本的下载,这个版本增加了对sql2008,sql2012以及2018版本的支持,支持对数据进行审计,查看操作日志,以及查看完整...

    SQL Server误操作恢复.rar

    最高支持到SQLSERVER2014的误删除数据恢复,包括删除数据表之类的操作,简单日志的也可以恢复,是一款比较实用的数据库工具

    MSSQL For LogView v1.0

    MSSQL_logview是一款对SQL Server日志分析工具,它可以浏览日志查看有关数据库的操作日志。此外,MSSQL_logview还是一个数据库恢复工具,如果您由于误操删除、误插入、误更新导致数据库数据丢失或更改,MSSQL_...

    数据库修复取证大师Sql Extractor[预览版] V10.96.rar

    •SQL数据库修复软件操作简便; •可以修复数据库置疑状态; •可以修复数据库无法附加或附加报错; •可以修复数据表查询错误; •可以修复MDF文件损坏; •可以修复数据库备份文件损坏; •可以修复数据库被...

    PRM-DUL Oracle(数据库恢复工具) v4.1.zip

    PRM-DUL Oracle数据库恢复工具已在多个操作平台(AIX/HPUX/SOLARIS/Linux/Windows)被证明稳定可用。当前版本软件支持对Oracle 9i/10g/11g/12c各版本数据库的数据救援工作。软件基于JAVA 开发,绿色无需安装,下载...

Global site tag (gtag.js) - Google Analytics