媒体集、媒体簇和备份集

包含一个或多个备份媒体的集合的备份构成一个媒体集。“媒体集”是“备份媒体”(磁带或磁盘文件)的有序集合,使用固定类型和数量的备份设备向其写入一个或多个备份操作。给定媒体集使用磁带机或磁盘驱动器,但不能同时使用两者。例如,与媒体集关联的备份设备可能是三个名为 \\.\TAPE0、\\.\TAPE1 和 \\.\TAPE2 的磁带机。该媒体集仅包含磁带,最少需要三个磁带(每个磁带机一个磁带)。备份设备的类型和数量是在创建媒体集时建立的,不能更改。但是,如有必要,可以在备份和还原操作之间将给定设备替换为同一类型的设备。

媒体集是在备份操作过程中通过格式化备份媒体从而在备份媒体上创建的。有关详细信息,请参阅创建新媒体集。设置格式后,每个文件或磁带都包含媒体集的媒体标头,可以开始接收备份内容。有了标头后,备份操作会将指定数据备份到为该操作指定的所有备份设备中的备份媒体。

注意注意

可以镜像媒体集,以防媒体卷(磁带或磁盘文件)被破坏。有关详细信息,请参阅使用镜像备份媒体集

SQL Server 2008 Enterprise 及更高版本支持备份压缩。压缩和未压缩的备份不能在一个媒体集中共存。任何 SQL Server 2008 版本或更高版本都可以读取压缩的备份。有关详细信息,请参阅备份压缩 (SQL Server)

媒体簇

“媒体簇”由在媒体集中的单个非镜像设备或一组镜像设备上创建的备份构成。媒体集所使用的备份设备的数量决定了媒体集中的媒体簇的数量。例如,如果媒体集使用两个非镜像备份设备,则该媒体集包含两个媒体簇。

注意注意

在镜像媒体集中,所有媒体簇也是镜像的。例如,如果使用六个备份设备来设置媒体集的格式,其中使用了两个镜像,则有三个媒体簇,每个媒体簇包含两个相同的备份数据副本。有关镜像媒体集的详细信息,请参阅使用镜像备份媒体集

媒体簇中的每个磁带或磁盘都分配了“媒体序列号”。磁盘的媒体序列号通常为 1。在磁带媒体簇中,起始磁带的序列号为 1,第二盘磁带的序列号为 2,依此类推。有关详细信息,请参阅使用媒体集及媒体簇

媒体标头

备份媒体(磁盘文件或磁带)的每个卷都包含媒体标头,媒体标头是在第一次使用磁带(或磁盘)执行备份操作时创建的。标头在重新设置媒体格式之前保持不变。

媒体标头包含标识媒体(磁盘文件或磁带)及其在所属媒体簇中的位置所需的所有信息。此信息包括:

  • 媒体的名称。

    媒体名称是可选的,但建议始终使用能够明确标识媒体的名称。媒体名称由设置媒体格式的用户指定。

  • 媒体集的唯一标识号。

  • 媒体集中的媒体簇数。

  • 包含此媒体的媒体簇的序列号。

  • 媒体簇的唯一标识号。

  • 媒体簇中此媒体的序列号。对于磁盘文件,此值始终为 1。

  • 媒体说明中是包含 MTF 媒体标签还是包含媒体说明。

    注意注意

    用于备份或还原操作的所有媒体都使用称为 Microsoft 磁带格式 (MTF) 的标准备份格式。用户可以使用 MTF 指定磁带标签,标签中包含特定于 MTF 的说明。SQL Server 保留由其他应用程序写入的任何 MTF 媒体标签,但其本身不会写入 MTF 媒体标签。

  • Microsoft 磁带格式媒体标签或媒体说明(自由格式文本)。

  • 用于创建标签的备份软件的名称。

  • 格式化媒体的软件供应商的唯一供应商标识号。

  • 创建标签的日期和时间。

  • 媒体集中的镜像数 (1-4),1 表示设备未镜像。

SQL Server 2008 可以处理使用早期版本的 SQL Server 设置格式的媒体。

重要说明重要提示

由于媒体标头发生了变化,SQL Server 7.0 版和 SP4 之前的 SQL Server 2000 无法解释使用 SQL Server 2008 格式化的媒体。但是,SQL Server 2000 SP4 支持媒体标头中的更改。

读取备份设备中的媒体的媒体标头

备份集

成功的备份操作将向媒体集中添加一个“备份集”。从备份所属的媒体集方面对备份集进行说明。如果备份媒体只包含一个媒体簇,则该簇包含整个备份集。如果备份媒体包含多个媒体簇,则备份集分布在各个媒体簇之间。在每个媒体上,备份集都包含说明备份集的标头。

下例显示一个 Transact-SQL 语句,该语句使用三个磁带机作为备份设备,为 AdventureWorks 数据库创建一个名为 MyAdvWorks_MediaSet_1 的媒体集。

BACKUP DATABASE AdventureWorks
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1', TAPE = '\\.\tape2'
WITH 
   FORMAT,
   MEDIANAME = 'MyAdvWorks_MediaSet_1'

如果成功,此备份操作将生成一个新的媒体集,该媒体集包含一个新媒体标头和一个分布在三个磁带上的备份集。下图说明了这些结果:

3 个磁带上的媒体标头和第一个备份集

通常,创建媒体集后,后续备份操作将依次向媒体集追加其备份集。备份集使用的所有媒体构成了媒体集,而与所涉及到的媒体或备份设备的数量无关。备份集按照其在媒体集中的位置依次编号,从而使您能够指定还原哪个备份集。

媒体集的每个备份操作都必须写入相同数量和类型的备份设备。如果使用多个设备,则与第一个备份集相同,每个后续备份集的内容都分布在所有设备的备份媒体中。为了继续上面的示例,第二个备份操作(差异备份)将向同一媒体集追加信息:

BACKUP DATABASE AdventureWorks
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1', TAPE = '\\.\tape2'
WITH 
   NOINIT,
   MEDIANAME = 'AdventureWorksMediaSet1',
   DIFFERENTIAL
注意注意

NOINIT 选项是默认选项,但为清楚起见,要包括此选项。

如果第二个备份操作成功,将向媒体集写入第二个备份集,并按以下方式分布备份内容:

第二个备份集分散在 3 个媒体集磁带上

在还原备份时,您可以使用 FILE 选项来指定想要使用的备份。下面的示例展示了 FILE **=**backup_set_file_number 子句的使用方法,它在还原 AdventureWorks 数据库的完整数据库备份并随后还原位于相同媒体集上的数据库差异备份时使用了该子句。媒体集使用了三个备份磁带,它们位于磁带机 \\.\tape0、tape1 和 tape2 上。

RESTORE DATABASE AdventureWorks FROM TAPE = '\\.\tape0', TAPE = '\\.\tape1', TAPE = '\\.\tape2'
   WITH 
   MEDIANAME = 'AdventureWorksMediaSet1',
   FILE=1, 
   NORECOVERY;
RESTORE DATABASE AdventureWorks FROM TAPE = '\\.\tape0', TAPE = '\\.\tape1', TAPE = '\\.\tape2' 
   WITH 
   MEDIANAME = 'AdventureWorksMediaSet1',
   FILE=2, 
   RECOVERY;
GO

历史记录表存储了媒体集及其媒体簇和备份集的相关信息,有关历史记录表的信息,请参阅查看有关备份的信息

媒体集中备份媒体的数量取决于下列几个因素:

  • 备份设备的数量

  • 备份设备的类型

  • 备份集的数量

查看特定备份设备中的备份集