扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:开发者在线 来源:开发者在线 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选项恢复了完整备份,你可以开始应用事务日志备份或差异备份。
差异备份
差异备份是指对上次完整数据库备份后数据库发生的任何改变进行备份。如果你有几个差异备份,你只需要恢复最后一个备份文件。在这种情况下,并不存在差异备份,因此你可以直接转向事务日志备份。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者