数据库损坏时备份事务日志 (SQL Server)

本主题介绍如何在使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中损坏数据库时备份事务日志。

本主题内容

在您开始之前

局限性与限制

  • 不允许在显式或隐式事务中使用 BACKUP 语句。

建议

  • 对于使用完整恢复模式或大容量日志恢复模式的数据库,通常需要在开始还原数据库之前备份日志的结尾。 在故障转移日志传送配置之前,还应备份主数据库的日志尾部。 在恢复数据库之前,将结尾日志备份还原为最终日志备份,以避免故障后丢失工作。 有关结尾日志备份的详细信息,请参阅 Tail-Log 备份(SQL Server)。

安全

权限

默认情况下,为 sysadmin 固定服务器角色以及 db_ownerdb_backupoperator 固定数据库角色的成员授予 BACKUP DATABASE 和 BACKUP LOG 权限。

备份设备的物理文件的所有权和权限问题可能会妨碍备份操作。 SQL Server 必须能够读取和写入设备;运行 SQL Server 服务的帐户必须具有写入权限。 但是,用于在系统表中为备份设备添加项目的 sp_addumpdevice不检查文件访问权限。 在进行备份或还原尝试时,只有访问物理资源时,备份设备的物理文件上才可能会出现此类问题。

使用 SQL Server Management Studio

备份事务日志的尾部

  1. 连接到 Microsoft SQL Server 数据库引擎的相应实例后,在对象资源管理器中,单击服务器名称以展开服务器树。

  2. 展开 “数据库”,然后根据数据库的不同,选择用户数据库,或展开 “系统数据库” ,再选择系统数据库。

  3. 右键单击数据库,指向 “任务”,然后单击“ 备份”。 将出现 “备份数据库” 对话框。

  4. “数据库” 列表框中,验证数据库名称。 您也可以从列表中选择其他数据库。

  5. 验证恢复模式是 FULL 还是 BULK_LOGGED

  6. “备份类型 ”列表框中,选择 “事务日志”。

  7. 将仅复制备份保留为已取消选中状态。

  8. “备份集 ”区域中,接受“ 名称” 文本框中建议的默认备份集名称,或为备份集输入其他名称。

  9. “说明 ”文本框中,输入结尾日志备份的说明。

  10. 指定备份集何时过期:

    • 若要使备份集在特定天数后过期,请单击“”(默认选项),并输入设置创建后备份集过期的天数。 此值可以是 0 到 99999 天;值为 0 天意味着备份集永远不会过期。

      “服务器属性”对话框(“数据库设置”页)的默认备份介质保留(以天为单位)选项中设置默认值。 若要访问此对话框,请在对象资源管理器中右键单击服务器名称并选择属性;然后选择“ 数据库设置” 页。

    • 若要使备份集在特定日期过期,请单击 “打开”,然后输入该集到期的日期。

  11. 单击 “磁盘 ”或“ 磁带”选择备份目标的类型。 若要选择最多包含单个介质集的 64 个磁盘或磁带驱动器的路径,请单击“ 添加”。 选择的路径将显示在 “备份到” 列表框中。

    若要删除备份目标,请选择它并单击“ 删除”。 若要查看备份目标的内容,请选择它并单击 “内容”。

  12. “选项” 页上,选择一个 “覆盖媒体” 选项,方法是单击以下选项之一:

    • 备份到现有媒体集

      对于此选项,请单击“ 追加到现有备份集 ”或 “覆盖所有现有备份集”。

      (可选)选择“检查介质集名称和备份集过期”,以便让备份操作验证介质集和备份集的过期日期和时间。

      (可选)在 “媒体集名称 ”文本框中输入名称。 如果未指定名称,则会创建一个具有空白名称的媒体集。 如果指定媒体集名称,则会检查介质(磁带或磁盘),以查看实际名称是否与此处输入的名称匹配。

      如果将媒体名称留空并选中该框以针对媒体进行检查,则成功将等于媒体上的媒体名称也为空白。

    • 备份到新的媒体集,并清除所有现有备份集

      对于此选项,请在 “新建媒体集名称 ”文本框中输入一个名称,并且(可选)在 “新建媒体集说明 ”文本框中描述媒体集。

    有关媒体集选项的详细信息,请参阅媒体集、媒体系列和备份集(SQL Server)。

  13. “可靠性 ”部分,(可选)检查:

    • 完成后验证备份

    • 在写入媒体之前执行校验和

    • 在校验和错误时继续

    有关校验和的信息,请参阅备份和还原期间可能发生的媒体错误(SQL Server)

  14. 事务日志部分中,勾选备份日志的末尾,并将数据库保留为还原状态

    这等效于指定以下 BACKUP 语句:

    BACKUP LOG <database_name> TO <backup_device> WITH NORECOVERY

    重要

    在还原时,“还原数据库”对话框将结尾日志备份的类型显示为事务日志(仅复制)。

  15. 如果备份到磁带驱动器(在“常规”页的“目标”部分中指定),则“备份后卸载磁带”选项是激活的。 单击此选项将激活卸载前倒带磁带选项。

  16. SQL Server 2008 Enterprise 及更高版本支持 备份压缩。 默认情况下,是否压缩备份取决于 备份压缩默认 服务器配置选项的值。 但是,无论当前的服务器级别默认值如何,都可以通过检查 压缩备份来压缩备份,并且可以通过检查 “不压缩备份”来阻止压缩。

    查看当前备份压缩默认值

使用 Transact-SQL

为了创建当前活动事务日志的备份

  1. 执行 BACKUP LOG 语句来备份当前活动的事务日志,并指定:

    • 要备份的事务日志所属的数据库的名称。

    • 用于写入事务日志备份的备份设备。

    • NO_TRUNCATE 子句。

      即使数据库无法访问,只要事务日志文件可访问且未损坏,此子句也允许备份事务日志的活动部分。

示例 (Transact-SQL)

注释

此示例使用 AdventureWorks2012,该模型使用简单的恢复模式。 若要允许日志备份,在进行完整数据库备份之前,该数据库设置为使用完整恢复模式。 有关详细信息,请参阅 查看或更改数据库(SQL Server)的恢复模式

当数据库损坏且无法访问时,如果事务日志未损坏且可访问,则本示例将备份当前活动的事务日志。

BACKUP LOG AdventureWorks2012  
   TO MyAdvWorks_FullRM_log1  
   WITH NO_TRUNCATE;  
GO  

另请参阅

还原事务日志备份 (SQL Server)
将 SQL Server 数据库还原到时间点(完整恢复模式)
备份数据库 (备份选项页)
备份数据库 (常规页)
应用事务日志备份 (SQL Server)
BACKUP (Transact-SQL)
文件还原 (简单恢复模式)
文件还原(完整恢复模式)