如何创建完整数据库备份 (Transact-SQL)

本主题说明如何使用 BACKUP DATABASE 语句创建完整数据库备份。

创建完整数据库备份

  1. 执行 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。

  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