如何创建完整数据库备份 (Transact-SQL)
本主题说明如何使用 BACKUP DATABASE 语句创建完整数据库备份。
创建完整数据库备份
执行 BACKUP DATABASE 语句可以创建完整数据库备份,同时指定:
要备份的数据库的名称。
写入完整数据库备份的备份设备。
完整数据库备份的基本 Transact-SQL 语法如下:
BACKUP DATABASE database
TO backup_device [ ,...n ]
[ WITH with_options [ ,...o ] ] ;
选项
说明
database
要备份的数据库。
backup_device [ ,...n ]
指定一个列表,它包含 1 至 64 个用于备份操作的备份设备。您可以指定物理备份设备,也可以指定对应的逻辑备份设备(如果已定义)。若要指定物理备份设备,请使用 DISK 或 TAPE 选项:
{ DISK | TAPE } =physical_backup_device_name
有关详细信息,请参阅备份设备。
WITH with_options [ ,...o ]
您也可以指定一个或多个附加选项 o。有关某些基本 WITH 选项的信息,请参阅步骤 2。
(可选)指定一个或多个 WITH 选项。下面描述了几个基本 WITH 选项。有关所有 WITH 选项的信息,请参阅 BACKUP (Transact-SQL)。
基本备份集 WITH 选项:
{ COMPRESSION | NO_COMPRESSION }
仅适用于 SQL Server 2008 Enterprise 及更高版本;指定是否为此备份执行备份压缩;该设置将替代服务器级默认设置。注意 服务器级默认设置可通过使用备份压缩默认值选项进行设置。
DESCRIPTION = { 'text' | **@**text_variable }
指定说明备份集的自由格式文本。该字符串最长可达 255 个字符。NAME = { backup_set_name | **@**backup_set_name_var }
指定备份集的名称。名称最长可达 128 个字符。如果未指定 NAME,它将为空。
基本备份集 WITH 选项:
默认情况下,BACKUP 将备份追加到现有介质集中,并保留现有备份集。若要显式指定此设置,请使用 NOINIT 选项。有关详细信息,请参阅追加到现有备份集。
或者,若要将备份介质格式化,可以使用 FORMAT 选项:
FORMAT [ , MEDIANAME**=** { media_name | **@**media_name_variable } ] [ , MEDIADESCRIPTION = { text | **@**text_variable } ]
当您第一次使用介质或者希望覆盖所有现有数据时可以使用 FORMAT 子句。根据需要,可以为新介质指定介质名称和说明。重要提示 当使用 BACKUP 语句的 FORMAT 子句时要十分小心,因为它会破坏以前存储在备份介质中的所有备份。
示例
A. 备份到磁盘设备
下面的示例通过使用 FORMAT 创建新的介质集,将整个 AdventureWorks2008R2 数据库备份到磁盘。
USE AdventureWorks2008R2;
GO
BACKUP DATABASE AdventureWorks2008R2
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.Bak'
WITH FORMAT,
MEDIANAME = 'Z_SQLServerBackups',
NAME = 'Full Backup of AdventureWorks2008R2';
GO
B. 备份到磁带设备
下例将完整的 AdventureWorks2008R2 数据库备份到磁带上,并将该备份追加到以前的备份中。
USE AdventureWorks2008R2;
GO
BACKUP DATABASE AdventureWorks2008R2
TO TAPE = '\\.\Tape0'
WITH NOINIT,
NAME = 'Full Backup of AdventureWorks2008R2';
GO
C. 备份到逻辑磁带设备
下例为某个磁带驱动器创建一个逻辑备份设备,然后将完整的 AdventureWorks2008R2 数据库备份到该设备上。
-- Create a logical backup device,
-- AdventureWorks2008R2_Bak_Tape, for tape device \\.\tape0.
USE master;
GO
EXEC sp_addumpdevice 'tape', 'AdventureWorks2008R2_Bak_Tape', '\\.\tape0';
USE AdventureWorks2008R2;
GO
BACKUP DATABASE AdventureWorks2008R2
TO AdventureWorks2008R2_Bak_Tape
WITH FORMAT,
MEDIANAME = 'AdventureWorks2008R2_Bak_Tape',
MEDIADESCRIPTION = '\\.\tape0',
NAME = 'Full Backup of AdventureWorks2008R2';
GO