本主题介绍如何使用 SQL Server Management Studio、Transact-SQL 或 PowerShell 在 SQL Server 2014 中创建完整数据库备份。
注释
有关将 SQL Server 备份到 Azure Blob 存储服务的信息,请参阅 SQL Server 备份和还原与 Azure Blob 存储服务。
本主题内容
准备工作:
若要创建完整数据库备份,请使用:
在您开始之前
局限性与限制
不允许在显式或隐式事务中使用 BACKUP 语句。
无法在早期版本的 SQL Server 中还原较新版本的 SQL Server创建的备份。
有关详细信息,请参阅备份概述(SQL Server)。
建议
随着数据库的大小增加,完整数据库备份需要更多时间才能完成,并且需要更多的存储空间。 因此,对于大型数据库,可能需要使用一系列 差异数据库备份来补充完整数据库备份。 有关详细信息,请参阅差异备份(SQL Server)。
可以使用 sp_spaceused 系统存储过程来估计完整数据库备份的大小。
默认情况下,每个成功的备份操作都会在 SQL Server 错误日志和系统事件日志中添加一个条目。 如果非常频繁地备份日志,这些成功消息会迅速累积,从而导致大量错误日志,这会使查找其他消息变得困难。 在这种情况下,如果没有任何脚本依赖于这些条目,则可以使用跟踪标志 3226 来禁止这些日志条目。 有关详细信息,请参阅跟踪标志 (Transact-SQL)。
安全
在数据库备份上,TRUSTWORTHY 设置为 OFF。 有关如何将 TRUSTWORTHY 设置为 ON 的信息,请参阅 ALTER DATABASE SET 选项 (Transact-SQL)。
从 SQL Server 2012 开始,创建备份时,PASSWORD 和 MEDIAPASSWORD选项已被取消。 你仍然可以还原使用密码创建的备份。
权限
默认情况下,为 sysadmin 固定服务器角色以及 db_owner 和 db_backupoperator 固定数据库角色的成员授予 BACKUP DATABASE 和 BACKUP LOG 权限。
备份设备的物理文件的所有权和权限问题可能会妨碍备份操作。 SQL Server 必须能够读取和写入设备;运行 SQL Server 服务的帐户必须具有写入权限。 但是,用于在系统表中为备份设备添加项目的 sp_addumpdevice不检查文件访问权限。 在进行备份或还原尝试时,只有访问物理资源时,备份设备的物理文件上才可能会出现此类问题。
使用 SQL Server Management Studio
注释
使用 SQL Server Management Studio 指定备份任务时,可以通过单击“脚本”按钮并选择脚本目标来生成相应的 Transact-SQL BACKUP 脚本。
备份数据库
连接到 Microsoft SQL Server 数据库引擎的相应实例后,在对象资源管理器中,单击服务器名称以展开服务器树。
展开 “数据库”,然后根据数据库的不同,选择用户数据库,或展开 “系统数据库” ,再选择系统数据库。
右键单击数据库,指向 “任务”,然后单击“ 备份”。 将出现 “备份数据库” 对话框。
在
Database列表框中,验证数据库名称。 您也可以从列表中选择其他数据库。可以为任何恢复模式(FULL、 BULK_LOGGED 或 SIMPLE)执行数据库备份。
在 “备份类型” 列表框中,选择 “完整”。
请注意,创建完整数据库备份后,可以创建差异数据库备份;有关详细信息,请参阅“创建差异数据库备份”(SQL Server)。
还可以根据需要选择 “仅复制备份”创建仅复制备份。 仅复制备份是独立于传统 SQL Server 备份序列的 SQL Server 备份。 有关详细信息,请参阅 Copy-Only 备份(SQL Server)。
注释
选择 差异 选项后,无法创建仅复制备份。
对于 备份组件,请单击
Database。可以接受 “名称” 文本框中建议的默认备份集名称,也可以为备份集输入其他名称。
或者,在 “说明” 文本框中,输入备份集的说明。
单击 “磁盘”、“ 磁带 ”或 “URL”选择备份目标的类型。 若要选择最多包含单个介质集的 64 个磁盘或磁带驱动器的路径,请单击“ 添加”。 选择的路径将显示在 “备份到” 列表框中。
若要删除备份目标,请选择它并单击“ 删除”。 若要查看备份目标的内容,请选择它并单击 “内容”。
若要查看或选择媒体选项,请单击“选择页面”窗格中的“媒体选项”。
选择一个覆盖媒体选项,方法是单击以下任一选项:
备份到现有媒体集
对于此选项,请单击“ 追加到现有备份集 ”或 “覆盖所有现有备份集”。 有关详细信息,请参阅媒体集、媒体系列和备份集(SQL Server)。
(可选)选择“检查介质集名称和备份集过期”,以便让备份操作验证介质集和备份集的过期日期和时间。
(可选)在 “媒体集名称 ”文本框中输入名称。 如果未指定名称,则会创建一个具有空白名称的媒体集。 如果指定媒体集名称,则会检查介质(磁带或磁盘),以查看实际名称是否与此处输入的名称匹配。
重要
如果选择 URL 作为“ 常规 ”页中的备份目标,则此选项处于禁用状态。 有关详细信息,请参阅 “备份数据库”(媒体选项页)
如果计划使用加密,请不要选择此选项。 如果选择此选项,“ 备份选项” 页中的加密选项将被禁用。 追加到现有备份集时不支持加密。
备份到新的媒体集,并清除所有现有备份集
对于此选项,请在 “新建媒体集名称 ”文本框中输入一个名称,并且(可选)在 “新建媒体集说明 ”文本框中描述媒体集。
重要
如果在“常规”页面中选择了 URL,则会禁用此选项。 备份到 Azure 存储时不支持这些操作。
在 “可靠性 ”部分中,可以选择检查:
完成后验证备份。
在写入媒体之前执行校验和,可选的情况下,在校验和错误时继续操作。 有关校验和的信息,请参阅备份和还原期间可能发生的媒体错误(SQL Server)。
如果备份到磁带驱动器(在“常规”页的“目标”部分中指定),则“备份后卸载磁带”选项是激活的。 单击此选项将激活卸载前倒带磁带选项。
注释
除非正在备份事务日志(如“常规”页的“备份类型”部分指定),否则事务日志部分中的选项处于非活动状态。
若要查看或选择备份选项,请单击“选择页面”窗格中的“备份选项”。
指定备份集何时过期并可以覆盖,而无需显式跳过过期数据的验证:
若要使备份集在特定天数后过期,请单击“后”(默认选项),并输入设置创建后备份集过期的天数。 此值可以是 0 到 99999 天;值为 0 天意味着备份集永远不会过期。
默认值在“服务器属性”对话框(“数据库设置”页)的默认备份介质保留(以天为单位)选项中设置。 若要访问此项,请在对象资源管理器中右键单击服务器名称并选择属性;然后选择“ 数据库设置” 页。
若要使备份集在特定日期过期,请单击 “打开”,然后输入该集到期的日期。
有关备份过期日期的详细信息,请参阅 BACKUP (Transact-SQL)。
SQL Server 2008 Enterprise 及更高版本支持 备份压缩。 默认情况下,是否压缩备份取决于 备份压缩默认 服务器配置选项的值。 但是,无论当前的服务器级别默认值如何,都可以通过检查 压缩备份来压缩备份,并且可以通过检查 “不压缩备份”来阻止压缩。
查看或更改当前备份压缩默认值
指定是否对备份使用加密。 选择要用于加密步骤的加密算法,并从现有证书或非对称密钥列表中提供证书或非对称密钥。 SQL Server 2014 或更高版本支持加密。 有关加密选项的更多详细信息,请参阅备份数据库(备份选项页)。
注释
或者,可以使用维护计划向导创建数据库备份。
使用 Transact-SQL
创建完整数据库备份
执行 BACKUP DATABASE 语句以创建完整数据库备份,并指定:
要备份的数据库的名称。
写入完整数据库备份的备份设备。
完整数据库备份的基本 Transact-SQL 语法为:
BACKUP DATABASE 数据库
TO backup_device [ ,...n ]
[ WITH with_options [ ,...o ] ;
选项 DESCRIPTION 数据库 要备份的数据库。 backup_device [ ,...n ] 指定要用于备份操作的 1 到 64 个备份设备的列表。 可以指定物理备份设备,也可以指定相应的逻辑备份设备(如果已定义)。 若要指定物理备份设备,请使用 DISK 或 TAPE 选项:
{ DISK | TAPE } =physical_backup_device_name
有关详细信息,请参阅备份设备(SQL Server)。WITH with_options [ ,……o ] (可选)指定一个或多个其他选项, o。 有关某些基本选项的信息,请参阅步骤 2。 (可选)指定一个或多个 WITH 选项。 此处介绍了一些基本的 WITH 选项。 有关所有 WITH 选项的信息,请参阅 BACKUP (Transact-SQL)。
带选项的基本备份集:
{ 压缩 | 无压缩 }
仅在 SQL Server 2008 Enterprise 及更高版本中,指定是否在此备份上执行 备份压缩 ,从而替代服务器级默认值。加密(算法,服务器证书 |非对称密钥)
仅在 SQL Server 2014 或更高版本中,指定要使用的加密算法,以及用于保护加密的证书或非对称密钥。DESCRIPTION = { ''
text| @text_variable }
指定描述备份集的自由格式文本。 该字符串最长可达 255 个字符。NAME = { backup_set_name | @backup_set_name_var }
指定备份集的名称。 名称最长可达 128 个字符。 如果未指定 NAME,它将为空。基本备份集 WITH 选项:
默认情况下,BACKUP 会将备份追加到现有介质集,从而保留现有的备份集。 若要显式指定此项,请使用 NOINIT 选项。 有关追加到现有备份集的信息,请参阅媒体集、媒体系列和备份集 (SQL Server)。
或者,若要设置备份介质的格式,请使用 FORMAT 选项:
FORMAT [ , MEDIANAME**=** { media_name | @media_name_variable } ] [ , MEDIADESCRIPTION = { text | @text_variable } ]
当您首次使用媒体或想要覆盖所有现有数据时,应使用 FORMAT 子句。 (可选)为新媒体分配媒体名称和说明。重要
使用 BACKUP 语句的 FORMAT 子句时,请格外小心,因为这会销毁以前存储在备份介质上的任何备份。
示例 (Transact-SQL)
答: 备份到磁盘设备
以下示例使用FORMAT创建新的媒体集,将完整的 AdventureWorks2012 数据库备份到磁盘。
USE AdventureWorks2012;
GO
BACKUP DATABASE AdventureWorks2012
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2012.Bak'
WITH FORMAT,
MEDIANAME = 'Z_SQLServerBackups',
NAME = 'Full Backup of AdventureWorks2012';
GO
B. 将备份存储到磁带设备
以下示例将完整的 AdventureWorks2012数据库备份到磁带,并将备份追加到以前的备份。
USE AdventureWorks2012;
GO
BACKUP DATABASE AdventureWorks2012
TO TAPE = '\\.\Tape0'
WITH NOINIT,
NAME = 'Full Backup of AdventureWorks2012';
GO
C. 备份到逻辑磁带设备
以下示例为磁带机创建逻辑备份设备。 然后,该示例将完整的 AdventureWorks2012 数据库备份到该设备。
-- Create a logical backup device,
-- AdventureWorks2012_Bak_Tape, for tape device \\.\tape0.
USE master;
GO
EXEC sp_addumpdevice 'tape', 'AdventureWorks2012_Bak_Tape', '\\.\tape0'; USE AdventureWorks2012;
GO
BACKUP DATABASE AdventureWorks2012
TO AdventureWorks2012_Bak_Tape
WITH FORMAT,
MEDIANAME = 'AdventureWorks2012_Bak_Tape',
MEDIADESCRIPTION = '\\.\tape0',
NAME = 'Full Backup of AdventureWorks2012';
GO
使用 PowerShell
使用
Backup-SqlDatabase命令。 若要显式指示这是完整数据库备份,请使用其默认值Database指定 -BackupAction 参数。 此参数对于完整数据库备份是可选的。以下示例将数据库的完整数据库备份
MyDB创建到服务器实例Computer\Instance的默认备份位置。 (可选)此示例指定-BackupAction Database。Backup-SqlDatabase -ServerInstance Computer\Instance -Database MyDB -BackupAction Database
设置和使用 SQL Server PowerShell 提供程序
相关任务
另请参阅
备份概述 (SQL Server)
事务日志备份 (SQL Server)
媒体集、媒体系列和备份集 (SQL Server)
sp_addumpdevice(Transact-SQL)
BACKUP (Transact-SQL)
备份数据库 (常规页)
备份数据库 (备份选项页)
差异备份 (SQL Server)
完整数据库备份 (SQL Server)