科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何使用事务日志恢复SQL Server数据库

如何使用事务日志恢复SQL Server数据库

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

事务日志备份保留上次事务日志备份后发生的所有事务的痕迹;它还允许你把数据库恢复到数据库发生错误之前的一个时间点。

作者:开发者在线 来源:开发者在线 2007年7月31日

关键字: Tim Chapman 数据库备份 数据库 事务日志 备份 SQL Server

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

大多数数据库管理员都害怕听说要将数据库恢复到某个时间点,特别是在数据库为生产数据库的情况下。但是,了解如何恢复数据库是数据库管理员技能背景中一个至关重要的组成部分。本文将说明如何把一个SQL Server数据库回复到恢复一个数据表的时候。

情况介绍

一个同事慌慌张张地给你打电话,因为他不小心删除了一些生产数据,他希望你能帮助他恢复丢失的记录。

如果你幸运的话,你建立了一个数据审计系统,你可以从一个审计表中恢复这些记录。如果你没有一个阅读事务日志的工具帮助你恢复事务,你可能需要将修改后的数据库恢复到某个时间点,恢复过程在同一台或单独的服务器上完成,而不是由服务器托管当前数据库实例。

恢复过程

注意,在本文中,我假定你的数据库恢复模式设为FULL

恢复过程的第一步是执行尾日志备份。在恢复一个数据库之前,为保证上次备份之后发生改变的记录都包含在恢复过程之中,你可能需要执行这种类型的备份。

下一步,你应该查找数据库备份文件在机器或网络中的存储位置。如果你要在另一台服务器上恢复数据库,最好是把这些文件复制到目标服务器中。在备份文件所在的位置,找出最后一个完整的数据库备份(这些文件通常使用.bak为扩展名);你需要恢复这个完整的备份。下面的脚本将完整的备份文件应用于NewDatabase数据库:

RESTORE DATABASE NewDatabase

FROM DISK = 'D: \BackupFiles\TestDatabaseFullBackup.bak'

WITH

MOVE 'PreviousDatabase' TO 'D:\DataFiles \TestDatabase.mdf',

MOVE 'PreviousDatabase_log' TO 'D:\DataFiles \TestDatabase_Log.ldf',

NORECOVERY

这段脚本指出完整备份文件位于服务器的D盘中,你正在使用备份文件恢复NewDatabase这个数据库。脚本中的语句将数据文件和日志文件从完整备份文件转移到TestDatabase数据库的新文件中。脚本中的最后一个语句——NORECOVERY——非常重要。NORECOVERY模式有三种选项,如下所示:

  • NORECOVERY:告诉SQL Server你没有完成恢复数据库的过程,随后会出现恢复文件。当数据库处于这种状态时,数据库还不能使用,因而不允许建立连接。
  • RECOVERY:告诉SQL Server你已经完成数据库恢复过程,数据库即将准备就绪。这是默认选项,也是最常用的选项。
  • STANDBY:告诉SQL Server当前数据库还未为完成恢复做好准备,随后可以使用日志文件进行恢复。如果必要,你可以使用这个选项为恢复数据库建立连接。但是,如果当前不存在连接,将来的事务日志只能应用于数据库。

一旦你使用NORECOVERY选项恢复了完整备份,你可以开始应用事务日志备份或差异备份。

差异备份

差异备份是指对上次完整数据库备份后数据库发生的任何改变进行备份。如果你有几个差异备份,你只需要恢复最后一个备份文件。在这种情况下,并不存在差异备份,因此你可以直接转向事务日志备份。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章