本主题说明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中创建差异数据库备份。
本主题内容
开始之前:
若要创建差异数据库备份,请使用:
限制和局限
不允许在显式或隐式事务中使用 BACKUP 语句。
必备条件
创建差异数据库备份需要有以前的完整数据库备份。如果选定的数据库从未进行过备份,则请在创建任何差异备份之前,先执行完整数据库备份。有关详细信息,请参阅创建完整数据库备份 (SQL Server)。
建议
当差异备份的大小增大时,还原差异备份会显著延长还原数据库所需的时间。因此,建议按设定的间隔执行新的完整备份,以便为数据建立新的差异基准。例如,您可以每周执行一次整个数据库的完整备份(即完整数据库备份),然后在该周内执行一系列常规的差异数据库备份。
安全性
权限
默认情况下,为 sysadmin 固定服务器角色以及 db_owner 和 db_backupoperator 固定数据库角色的成员授予 BACKUP DATABASE 和 BACKUP LOG 权限。
备份设备的物理文件的所有权和权限问题可能会妨碍备份操作。SQL Server 必须能够读取和写入设备;运行 SQL Server 服务的帐户必须具有写入权限。但是,用于在系统表中为备份设备添加项目的 sp_addumpdevice 不检查文件访问权限。备份设备物理文件的这些问题可能直到为备份或还原而访问物理资源时才会出现。
创建差异数据库备份
连接到相应的 Microsoft SQL Server 数据库引擎实例之后,在对象资源管理器中,单击服务器名称以展开服务器树。
展开“数据库”,然后根据数据库的不同,选择用户数据库,或展开“系统数据库”,再选择系统数据库。
右键单击数据库,指向“任务”,再单击“备份”。将出现“备份数据库”对话框。
在“数据库”列表框中,验证数据库名称。您也可以从列表中选择其他数据库。
可以执行任意恢复模式(完整、大容量日志或简单)的差异备份。
在“备份类型”列表框中,选择“差异”。
重要提示 选择了“差异”后,请验证是否清除了“仅复制备份”复选框。
对于“备份组件”,请单击“数据库”。
可以接受“名称”文本框中建议的默认备份集名称,也可以为备份集输入其他名称。
或者,在“说明”文本框中,输入备份集的说明。
指定备份集的过期时间:
若要使备份集在特定天数后过期,请单击“之后”(默认选项),并输入备份集从创建到过期所需的天数。此值范围为 0 到 99999 天;0 天表示备份集将永不过期。
默认值在“服务器属性”对话框(位于“数据库设置”页上)的“默认备份介质保持期(天)”选项中设置。若要访问它,请在对象资源管理器中右键单击服务器名称,选择属性,再选择“数据库设置”页。
若要使备份集在特定日期过期,请单击“在”,并输入备份集的过期日期。
通过单击“磁盘”或“磁带”,选择备份目标的类型。若要选择包含单个介质集的多个磁盘或磁带机(最多为 64 个)的路径,请单击“添加”。选择的路径将显示在“备份到”列表框中。
若要删除备份目标,请选择该备份目标并单击“删除”。若要查看备份目标的内容,请选择该备份目标并单击“内容”。
若要查看或选择高级选项,请在“选择页”窗格中单击“选项”。
可以通过单击以下选项之一来选择“覆盖介质”选项:
备份到现有介质集
对于此选项,请单击“追加到现有备份集”或“覆盖所有现有备份集”。或者,选中“检查介质集名称和备份集过期时间”复选框,并在“介质集名称”文本框中输入名称(可选)。如果没有指定名称,将使用空白名称创建介质集。如果指定了某个介质集名称,将检查该介质(磁带或磁盘)的实际名称是否与在此输入的名称相符。
如果将介质名称保留空白,并选中该框以便与介质进行核对,则只有当介质上的介质名称也是空白时才能成功。
备份到新介质集并清除所有现有备份集
对于该选项,请在“新建介质集名称”文本框中输入名称,并在“新建介质集说明”文本框中描述介质集(可选)。
或者,在“可靠性”部分中,选中:
完成后验证备份。
“写入介质前检查校验和”和“出现校验和错误时继续”(可选)。有关校验和的信息,请参阅在备份和还原期间可能的介质错误 (SQL Server)。
如果备份到磁带机(如同“常规”页的“目标”部分指定的一样),则“备份后卸载磁带”选项处于活动状态。单击此选项可以激活“卸载前倒带”选项。
注意 除非备份的是事务日志(如同“常规”页的“备份类型”部分中指定的一样),否则“事务日志”部分中的选项处于不活动状态。
SQL Server 2008 Enterprise 及更高版本支持备份压缩。默认情况下,是否压缩备份取决于 backup-compression default 服务器配置选项的值。但是,不管当前服务器级默认设置如何,您都可以通过选中“压缩备份”来压缩备份,并且可以通过选中“不压缩备份”来防止压缩备份。
查看当前备份压缩默认值
注意 另外,可以使用维护计划向导创建差异数据库备份。
创建差异数据库备份
执行 BACKUP DATABASE 语句可以创建差异数据库备份,同时指定:
要备份的数据库的名称。
写入完整数据库备份的备份设备。
DIFFERENTIAL 子句,用于指定仅备份自上次创建完整数据库备份之后已更改的数据库部分。
要求语法为:
BACKUP DATABASE database_name TO <backup_device> WITH DIFFERENTIAL
示例 (Transact-SQL)
以下示例为 MyAdvWorks 数据库创建完整数据库备份和差异数据库备份。
-- Create a full database backup first. BACKUP DATABASE MyAdvWorks TO MyAdvWorks_1 WITH INIT; GO -- Time elapses. -- Create a differential database backup, appending the backup -- to the backup device containing the full database backup. BACKUP DATABASE MyAdvWorks TO MyAdvWorks_1 WITH DIFFERENTIAL; GO