备份事务日志

适用于:SQL Server (所有受支持的版本)

本主题介绍如何使用 SQL Server Management Studio、Transact-SQL 或 PowerShell 在 SQL Server 中备份事务日志。

开始之前

限制和局限

不允许在显式或隐式事务中使用 BACKUP 语句。 显式事务就是可以显式地在其中定义事务的开始和结束的事务。

建议

  • 如果数据库使用完整恢复模式或大容量日志恢复模式,则必须足够频繁地备份事务日志,以保护数据和避免事务日志变满。 这将截断日志,并且支持将数据库还原到特定时间点。

  • 默认情况下,每个成功的备份操作都会在 SQL Server 错误日志和系统事件日志中添加一个条目。 如果频繁地备份日志,这些成功消息会迅速累积,从而产生巨大的错误日志,这样会使查找其他消息变得非常困难。 在这种情况下,可以使用跟踪标志 3226 来禁止这些日志条目,如果任何脚本都依赖于这些条目,请参阅跟踪 标志 (Transact-SQL)

权限

默认情况下,为 sysadmin 固定服务器角色以及 db_owner 和 db_backupoperator 固定数据库角色的成员授予所需的 BACKUP DATABASEBACKUP LOG 权限 。 开始操作前,先检查是否有正确的权限。

备份设备的物理文件的所有权和权限问题可能会妨碍备份操作。 SQL Server 必须能够读取和写入设备;运行 SQL Server 服务的帐户必须具有写入权限。 但是,用于在系统表中为备份设备添加项目的 sp_addumpdevice不检查文件访问权限。 在因尝试备份或还原而访问物理资源 之前,备份设备物理文件中的权限问题可能并不明显。 因此再次强调,开始操作前,先检查权限。

使用 SQL Server Management Studio

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

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

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

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

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

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

  7. (可选)选择“仅复制备份”创建仅复制备份 。 仅复制备份是独立于传统SQL Server备份序列的SQL Server备份,请参阅仅复制备份 (SQL Server)

    注意

    选择“差异” 选项时,无法创建仅复制备份。

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

  9. (可选)在“说明”文本框中,输入备份集的说明 。

  10. 指定备份集的过期时间:

    • 若要使备份集在特定天数后过期,请单击 “之后” (默认选项),并输入备份集从创建到过期所需的天数。 此值范围为 0 到 99999 天;0 天表示备份集将永不过期。

      默认值在 “服务器属性” 对话框(位于 “数据库设置” 页上)的 “默认备份媒体保持期(天)” 选项中设置。 若要访问此对话框,请在对象资源管理器中右键单击服务器名称,选择“属性”,再选择 “数据库设置” 页。

    • 若要使备份集在特定日期过期,请单击 “在” ,并输入备份集的过期日期。

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

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

  12. 若要查看或选择高级选项,请在 “选择页” 窗格中单击 “选项”

  13. 可以通过单击以下选项之一来选择 “覆盖介质” 选项:

    • 备份到现有介质集

      对于此选项,请单击“追加到现有备份集”或“覆盖所有现有备份集”,请参阅媒体集、媒体系列和备份集 (SQL Server)

      • (可选)选择“检查介质集名称和备份集的过期日期” ,以使备份操作对媒体集和备份集的过期日期和时间进行验证。

      • (可选)在“介质集名称”文本框中输入名称 。 如果没有指定名称,将使用空白名称创建介质集。 如果指定了介质集名称,将检查介质(磁带或磁盘),以确定实际名称是否与此处输入的名称匹配。

      如果将介质名称保留空白,并选中该框以便与介质进行核对,则只有当介质上的介质名称也是空白时才能成功。

    • 备份到新介质集并清除所有现有备份集

      对于此选项,请在“新建媒体集名称”文本框中输入名称,并且(可选)在“新建媒体集”说明文本框中描述媒体集,请参阅媒体集、媒体系列和备份集 (SQL Server)

  14. 或者,在 “可靠性” 部分中,选中:

  15. “事务日志” 区域中:

    • 对于例行的日志备份,请保留默认选项 “通过删除不活动的条目截断事务日志”

    • 若要备份日志尾部(即活动的日志),请选中“备份日志尾部,并使数据库处于还原状态” 。

      备份日志尾部失败后执行结尾日志备份,以防丢失所做的工作。 在失败之后且在开始还原数据库之前,或者在故障转移到辅助数据库时,备份活动日志(结尾日志备份)。 选择此选项等效于在 Transact-SQL BACKUP LOG 语句中指定 NORECOVERY 选项。

      有关结尾日志备份的详细信息,请参阅结尾日志备份 (SQL Server)

  16. 如果备份到磁带驱动器(如同 “常规” 页的 “目标” 部分指定的一样),则 “备份后卸载磁带” 选项处于活动状态。 单击此选项可以激活 “卸载前倒带” 选项。

  17. SQL Server 2008 Enterprise 及更高版本支持 备份压缩。 默认情况下,是否压缩备份取决于 backup-compression default 服务器配置选项的值。 但是,不管当前服务器级默认设置如何,都可以通过选中 “压缩备份” 来压缩备份,并且可以通过选中 “不压缩备份” 来防止压缩备份。

    若要查看当前备份压缩默认值,请参阅查看或配置备份压缩默认值服务器配置选项

    若要加密备份文件,请选中 “加密备份” 复选框。 选择要用于加密备份文件的加密算法,并提供一个证书或非对称密钥。 可用于加密的算法是:

    • AES 128

    • AES 192

    • AES 256

    • 三重 DES

“使用 Transact-SQL”

执行 BACKUP LOG 语句以备份事务日志,同时指定下列对象:

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

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

重要

此示例使用 AdventureWorks2012 数据库,该数据库使用简单恢复模式。 若要允许日志备份,请在完整备份数据库之前,将数据库设置为使用完整恢复模式。

有关详细信息,请参阅查看或更改数据库 (SQL Server) 的恢复模式

以下示例将在以前创建的已命名备份设备 AdventureWorks2012 上创建 MyAdvWorks_FullRM_log1数据库的事务日志备份。

BACKUP LOG AdventureWorks2012  
   TO MyAdvWorks_FullRM_log1;  
GO  

使用 PowerShell

设置和使用 SQL Server PowerShell 提供程序。 使用 Backup-SqlDatabase cmdlet 并为 -BackupAction 参数的值指定 Log

下面的示例在服务器实例 <myDatabase> 的默认备份位置创建数据库 Computer\Instance的日志备份。

Backup-SqlDatabase -ServerInstance Computer\Instance -Database <myDatabase> -BackupAction Log  

相关任务

另请参阅

BACKUP (Transact-SQL)
应用事务日志备份 (SQL Server)
维护计划
完整文件备份 (SQL Server)