本主题介绍如何在使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中损坏数据库时备份事务日志。
本主题内容
准备工作:
若要在数据库损坏时备份事务日志,请使用:
在您开始之前
局限性与限制
- 不允许在显式或隐式事务中使用 BACKUP 语句。
建议
- 对于使用完整恢复模式或大容量日志恢复模式的数据库,通常需要在开始还原数据库之前备份日志的结尾。 在故障转移日志传送配置之前,还应备份主数据库的日志尾部。 在恢复数据库之前,将结尾日志备份还原为最终日志备份,以避免故障后丢失工作。 有关结尾日志备份的详细信息,请参阅 Tail-Log 备份(SQL Server)。
安全
权限
默认情况下,为 sysadmin 固定服务器角色以及 db_owner 和 db_backupoperator 固定数据库角色的成员授予 BACKUP DATABASE 和 BACKUP LOG 权限。
备份设备的物理文件的所有权和权限问题可能会妨碍备份操作。 SQL Server 必须能够读取和写入设备;运行 SQL Server 服务的帐户必须具有写入权限。 但是,用于在系统表中为备份设备添加项目的 sp_addumpdevice不检查文件访问权限。 在进行备份或还原尝试时,只有访问物理资源时,备份设备的物理文件上才可能会出现此类问题。
使用 SQL Server Management Studio
备份事务日志的尾部
连接到 Microsoft SQL Server 数据库引擎的相应实例后,在对象资源管理器中,单击服务器名称以展开服务器树。
展开 “数据库”,然后根据数据库的不同,选择用户数据库,或展开 “系统数据库” ,再选择系统数据库。
右键单击数据库,指向 “任务”,然后单击“ 备份”。 将出现 “备份数据库” 对话框。
在 “数据库” 列表框中,验证数据库名称。 您也可以从列表中选择其他数据库。
验证恢复模式是 FULL 还是 BULK_LOGGED。
在 “备份类型 ”列表框中,选择 “事务日志”。
将仅复制备份保留为已取消选中状态。
在 “备份集 ”区域中,接受“ 名称” 文本框中建议的默认备份集名称,或为备份集输入其他名称。
在 “说明 ”文本框中,输入结尾日志备份的说明。
指定备份集何时过期:
若要使备份集在特定天数后过期,请单击“后”(默认选项),并输入设置创建后备份集过期的天数。 此值可以是 0 到 99999 天;值为 0 天意味着备份集永远不会过期。
在“服务器属性”对话框(“数据库设置”页)的默认备份介质保留(以天为单位)选项中设置默认值。 若要访问此对话框,请在对象资源管理器中右键单击服务器名称并选择属性;然后选择“ 数据库设置” 页。
若要使备份集在特定日期过期,请单击 “打开”,然后输入该集到期的日期。
单击 “磁盘 ”或“ 磁带”选择备份目标的类型。 若要选择最多包含单个介质集的 64 个磁盘或磁带驱动器的路径,请单击“ 添加”。 选择的路径将显示在 “备份到” 列表框中。
若要删除备份目标,请选择它并单击“ 删除”。 若要查看备份目标的内容,请选择它并单击 “内容”。
在 “选项” 页上,选择一个 “覆盖媒体” 选项,方法是单击以下选项之一:
备份到现有媒体集
对于此选项,请单击“ 追加到现有备份集 ”或 “覆盖所有现有备份集”。
(可选)选择“检查介质集名称和备份集过期”,以便让备份操作验证介质集和备份集的过期日期和时间。
(可选)在 “媒体集名称 ”文本框中输入名称。 如果未指定名称,则会创建一个具有空白名称的媒体集。 如果指定媒体集名称,则会检查介质(磁带或磁盘),以查看实际名称是否与此处输入的名称匹配。
如果将媒体名称留空并选中该框以针对媒体进行检查,则成功将等于媒体上的媒体名称也为空白。
备份到新的媒体集,并清除所有现有备份集
对于此选项,请在 “新建媒体集名称 ”文本框中输入一个名称,并且(可选)在 “新建媒体集说明 ”文本框中描述媒体集。
有关媒体集选项的详细信息,请参阅媒体集、媒体系列和备份集(SQL Server)。
在 “可靠性 ”部分,(可选)检查:
完成后验证备份。
在写入媒体之前执行校验和。
在校验和错误时继续
有关校验和的信息,请参阅备份和还原期间可能发生的媒体错误(SQL Server)。
在事务日志部分中,勾选备份日志的末尾,并将数据库保留为还原状态。
这等效于指定以下 BACKUP 语句:
BACKUP LOG <database_name> TO <backup_device> WITH NORECOVERY重要
在还原时,“还原数据库”对话框将结尾日志备份的类型显示为事务日志(仅复制)。
如果备份到磁带驱动器(在“常规”页的“目标”部分中指定),则“备份后卸载磁带”选项是激活的。 单击此选项将激活卸载前倒带磁带选项。
SQL Server 2008 Enterprise 及更高版本支持 备份压缩。 默认情况下,是否压缩备份取决于 备份压缩默认 服务器配置选项的值。 但是,无论当前的服务器级别默认值如何,都可以通过检查 压缩备份来压缩备份,并且可以通过检查 “不压缩备份”来阻止压缩。
查看当前备份压缩默认值
使用 Transact-SQL
为了创建当前活动事务日志的备份
执行 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)
文件还原 (简单恢复模式)
文件还原(完整恢复模式)