`
free_bird816
  • 浏览: 205907 次
  • 性别: 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

分享到:
评论

相关推荐

    DM8数据库误操作恢复详细步骤

    【DM8 数据库误操作恢复】是数据库管理中的一项重要任务,目的是在出现错误或意外删除后恢复数据到正确状态。以下是对DM8数据库误操作恢复的详细步骤: 1. **开启归档模式**:归档模式对于实现精确的数据恢复至关...

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

    总之,"数据库误操作 数据恢复软件 logexploer4sql321" 是一款实用的工具,它利用SQL Server的日志系统帮助用户恢复误删的数据。通过理解其工作原理和使用方法,企业可以更好地应对数据库误操作带来的风险,保护宝贵...

    MySQL数据库中误操作删除数据的恢复问题.pdf

    MySQL数据库中误操作删除数据的恢复问题是一个常见的挑战,尤其是在生产环境中。MySQL作为一个广泛使用的开源关系型数据库管理系统,其数据安全性和可靠性至关重要。当用户意外删除了重要的数据,如何有效地恢复这些...

    MySQL 数据库误删除后的数据恢复操作说明(详细)

    本文将详细介绍在遇到MySQL数据库误删除的情况下,如何通过备份文件和binlog文件进行数据恢复的操作流程。 #### 二、工作场景与背景 假设在某一典型的工作环境中,MySQL数据库被设置为每天晚上12点进行一次完全备份...

    sql server误操作日志还原工具

    总之,"SQL Server误操作日志还原工具"是数据库管理员的重要工具,它提供了一种方法来修复因错误操作导致的数据损坏。合理利用这类工具,结合良好的数据库管理和备份策略,可以大大提高SQL Server数据库的安全性和...

    数据库恢复工具,解析binglog日志

    1. 数据误操作:当用户意外删除或修改了重要数据,可以通过日志恢复到操作前的状态。 2. 系统崩溃:系统硬件故障或软件错误导致数据库不可用,日志可以帮助恢复到崩溃前的稳定状态。 3. 数据备份验证:定期解析...

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

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

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

    注意,binlog日志恢复并非总是能够完全恢复数据,因为binlog不包含SELECT语句,所以如果数据依赖于某个时刻的查询结果,这部分信息可能无法恢复。另外,binlog日志的存储格式(如STATEMENT、ROW或MIXED)也会影响...

    详解MySQL误操作后怎样进行数据恢复

    本文将详细介绍如何在MySQL误操作后进行数据恢复。 首先,确保MySQL的日志功能,即二进制日志(binlog)已经开启。二进制日志记录了所有对数据库的更改操作,是数据恢复的关键。可以通过`SHOW VARIABLES LIKE 'log_...

    SQLServer数据库日志分析数据恢复工具

    在完整恢复模式下,可以通过时间点恢复将数据库状态恢复到某个特定的时间点,这在误操作后尤其有用。工具可能提供图形化界面,简化了这一过程,使得非技术用户也能执行复杂的恢复操作。 最后,“还原删除记录”是...

    数据库系统恢复技术综述

    为了恢复数据库误操作等错误,完全恢复通常是不合适的,因为如果重新应用所有事务,则错误将会重复。数据库恢复工具允许管理员在错误发生前停止日志前滚,从而恢复到错误发生前的状态。 #### 五、数据库复制 为了...

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

    MySQL 数据库误删除后的恢复方案是一项关键的故障应对策略,特别是在没有实时主从复制或热备的情况下。在本文中,我们将深入探讨如何利用备份数据文件和增量的 binlog(二进制日志)文件来恢复数据。 首先,开启 ...

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

    "Log Explorer"就是这样一个工具,它在描述中被提及,表明它在处理数据库日志恢复方面具有高效和实用的特点。 Log Explorer的主要功能包括: 1. **日志读取与解析**:能够读取和解析SQL Server的事务日志文件(....

    Oracle数据库误删除数据的不同恢复方法整理(超级实用)

    ### Oracle数据库误删除数据的不同恢复方法 #### 一、引言 在Oracle数据库管理中,误删除数据是一种常见的错误操作,可能导致重要的业务数据丢失。为了应对这种情况,Oracle提供了多种数据恢复的方法,包括闪回恢复...

    MySQL日志和数据恢复

    如果已启用二进制日志,可以使用`mysqlbinlog`回滚到误操作之前的状态。 - 硬盘故障:定期备份是关键,包括全量备份和增量备份。配合二进制日志,可以实现接近实时的数据恢复。 6. 数据库维护 - 定期备份:应定期...

    实验4 数据库备份与恢复实验.pdf

    【实验5-12】和【实验5-13】展示了如何在误操作删除数据库后,使用备份的SQL文件进行恢复。 ### 使用DELETE语句删除数据和图形化工具MySQLWorkbench进行恢复 DELETE语句用于删除表中的行数据,而MySQLWorkbench...

    SQL利用日志和表插入的方法恢复数据库(详细)

    在数据库管理与维护过程中,因误操作或其他原因导致的数据丢失或损坏是常见的问题之一。为了最大限度地减少损失,掌握有效的数据恢复方法至关重要。本文将详细介绍如何通过SQL日志备份与表插入的方式进行数据库恢复...

    Oracle数据库中数据误操作的补救方法.pdf

    当误操作发生后,可以通过恢复命令和备份副本将数据库恢复到备份时的状态。然而,这种方法依赖于事先存在的正确备份,并且恢复过程可能因备份策略而异,工作量可能较大。 三、Oracle闪回技术 Oracle的闪回技术是较...

Global site tag (gtag.js) - Google Analytics