媒体集、媒体系列和备份集 (SQL Server)

本主题介绍 SQL Server 备份和还原的基本备份介质术语,适用于不熟悉 SQL Server 的读者。 本主题介绍 SQL Server 用于备份介质的格式、备份介质与备份设备之间的对应关系、备份介质上的备份组织以及媒体集和介质系列注意事项。 本主题还介绍了首次使用备份介质之前初始化或设置备份介质格式的步骤,或者将旧介质集替换为新介质集、如何覆盖介质集中的旧备份集,以及如何将新备份集追加到介质集。

注释

有关将 SQL Server 备份到 Azure Blob 存储服务的详细信息,请参阅 SQL Server 备份和还原与 Azure Blob 存储服务

术语和定义

介质集是备份介质、磁带或磁盘文件的有序集合,一个或多个备份操作使用固定类型和数量的备份设备对其进行了写入。

在单个非镜像设备或媒体集中的一组镜像设备上创建的媒体系列备份

备份集是通过成功备份操作添加到介质集中的备份内容。

媒体集、介质系列和备份集概述

一组或多台备份介质上的备份组成单个介质集。 介质集是由备份介质、磁带、磁盘文件或 Azure Blob 组成的有序集合,其中一个或多个备份操作已经使用固定类型和数量的备份设备将数据写入其中。 给定媒体集使用磁带驱动器、磁盘驱动器或 Azure Blob,但不能结合使用两个或更多个。 例如,与介质集关联的备份设备可能是三个名为 \\.\TAPE0\\.\TAPE1\\.\TAPE2 的磁带驱动器。 该介质集仅包含磁带,从至少三个磁带(每个驱动器一个)开始。 创建介质集时,将建立备份设备的类型和数量,并且无法更改它们。 但是,如有必要,在备份和还原作之间,给定设备可以替换为同一类型的设备。

在备份作期间,通过设置备份介质的格式,在备份介质上创建介质集。 有关详细信息,请参阅本主题后面的“ 创建新媒体集”。 设置格式后,每个文件或磁带都包含介质集的媒体标头,并已准备好接收备份内容。 在标头就位后,备份操作将继续把指定的数据备份到所有为该操作指定的备份设备上的备份介质。

注释

可以镜像媒体集,以保护媒体卷(如磁带或磁盘文件)免受损坏。 有关详细信息,请参阅镜像备份介质集(SQL Server)。

SQL Server 2008 或更高版本可以读取压缩备份。 有关详细信息,请参阅备份压缩 (SQL Server)

媒体家庭

在单个不带镜像的设备上创建的备份或介质集中的一组镜像设备构成了媒体族。 用于介质集的备份设备数决定了介质集中的介质系列数。 例如,如果介质集使用两个非镜像备份设备,则介质集包含两个介质族。

注释

在镜像媒体集配置中,每个介质集族都被镜像。 例如,如果六个备份设备用于设置介质集的格式,其中使用了两个镜像,则有三个介质系列,每个介质系列包含两个等效的备份数据副本。 有关镜像介质集的详细信息,请参阅镜像备份介质集 (SQL Server)。

为介质系列中的每个磁带或磁盘分配一个 介质序列号。 磁盘的媒体序列号始终为 1。 在磁带介质系列中,初始磁带的序列号为 1,第二个磁带的序列号为 2,依此类推。 有关详细信息,请参阅 使用媒体集和系列

媒体头部

备份介质(磁盘文件或磁带)的每个卷都包含一个介质标头,该标头由使用磁带(或磁盘)的第一个备份作创建。 在重新格式化媒体之前,该标头保持不变。

媒体标头包含标识介质(磁盘文件或磁带)及其所在介质系列内的位置所需的所有信息。 此信息包括:

  • 媒体的名称。

    媒体名称是可选的,但我们建议始终使用明确标识媒体的媒体名称。 媒体名称由格式化媒体的人员分配。

  • 介质集的唯一标识号。

  • 媒体集中媒体组数。

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

  • 媒体家族的唯一标识号。

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

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

    注释

    用于备份或还原操作的所有媒体都使用一个称为 SQL Server 的标准备份格式。SQL Server 会保留由其他应用程序写入的任何 MTF 媒体标签,但不会写入新的 MTF 媒体标签。

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

  • 写入标签的备份软件的名称。

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

  • 标签的写入日期和时间。

  • 集中镜子的数量(1-4);1 表示未镜像的设备。

SQL Server 2014 可以处理早期版本的 SQL Server 格式化的媒体。

备份集

成功的备份操作将单个 备份集 添加到介质集。 备份集根据备份所属的介质集进行描述。 如果备份介质仅包含一个介质系列,则该系列包含整个备份集。 如果备份介质由多个介质系列组成,则备份集分布在其中。 在每个介质上,备份集都包含描述备份集的标头。

以下示例演示了一个 Transact-SQL 语句,该语句使用三个磁带驱动器作为备份设备,为 AdventureWorks2012 数据库创建名为 MyAdvWorks_MediaSet_1 的媒体集。

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

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

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

通常,在创建介质集后,后续备份作逐个地将其备份集追加到介质集。 备份集使用的所有介质都构成介质集,而不管涉及的介质或备份设备的数量如何。 备份集按介质集中的位置按顺序编号,允许指定要还原的备份集。

对介质集的每个备份操作都必须写入相同数量和类型的备份设备。 对于多个设备(与第一个备份集一样),每个后续备份集的内容都分布在所有设备上的备份介质之间。 若要继续上述示例,作为第二个备份操作的差异备份会将信息追加到同一介质集上。

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

注释

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

如果第二个备份操作成功,它将第二个备份集写入介质集,备份内容的分配如下:

第二个备份集分布在 3 个介质集磁带中,

还原备份时,可以使用 FILE 选项指定要使用的备份。 以下示例演示在还原 AdventureWorks2012 数据库的完整数据库备份后,使用 FILE =backup_set_file_number 子句,然后在同一介质集上还原差异数据库备份。 介质集使用三个备份磁带,这些磁带位于\\.\tape0tape1tape2磁带驱动器上。

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

有关存储有关媒体集及其介质系列和备份集的信息的历史记录表的信息,请参阅备份历史记录和标头信息(SQL Server)。

介质集中的备份介质数取决于几个因素:

  • 备份设备数

  • 备份设备的类型

  • 备份集数

使用媒体集和系列

本部分讨论使用媒体集和媒体系列时的几个注意事项。

创建新媒体集

若要创建新的介质集,必须格式化备份介质(一个或多个磁带或磁盘文件)。 格式设置过程将更改备份介质,如下所示:

  1. 删除旧标头(如果有),从而有效地删除了备份介质的先前内容。

    格式化磁带设备会删除当前装载的磁带的所有以前的内容。 格式化磁盘仅影响您为备份操作指定的文件

  2. 在每个备份设备上在备份介质(磁带或磁盘文件)上写入新的媒体标头。

备份到现有媒体集

如需备份到现有媒体集,则有以下两个选项:

  • 追加到现有备份集。

    为了充分利用可用空间,新备份集通常追加到现有介质集。 追加到备份会保留所有之前的备份。 有关详细信息,请参阅本节后面的 “追加到现有备份集”。

    注释

    追加是 BACKUP 的默认行为,可以使用 NOINIT 选项显式指定。

  • 使用当前备份覆盖所有现有备份集,同时保留当前媒体标头。

    SQL Server 备份具有安全措施,可防止您意外覆盖数据媒介。 但是,备份可以自动覆盖已达到预定义到期日期的备份集。

    对于磁带首部,保持首部不动是有意义的。 有关详细信息,请参阅本节后面的 Overwriting Backup Sets

    注释

    通过使用 BACKUP 语句的 INIT 选项来指定是否覆盖现有备份集。

追加到现有备份集合

在相同或不同数据库的不同时间执行的备份可以存储在同一介质上。 通过将另一个备份集追加到现有介质,介质以前的内容保持不变,并在介质上最后一次备份结束时写入新备份。

默认情况下,SQL Server 始终将新备份追加到媒体。 只能在媒体末尾进行追加。 例如,如果介质卷包含五个备份集,则无法跳过前三个备份集,以用新的备份集覆盖第四个备份集。

如果将 BACKUP WITH NOREWIND 用于磁带备份,则磁带将在作结束时保持打开状态。 这样,便可以将进一步备份追加到磁带,而无需回退磁带,然后再次向前扫描以查找最后一个备份集。 可以在sys.dm_io_backup_tapes动态管理视图中找到打开的磁带驱动器的列表;有关详细信息,请参阅sys.dm_io_backup_tapes(Transact-SQL)。

Microsoft Windows 备份和 SQL Server 备份可以共享相同的媒体,但它们不可互作。 SQL Server 备份无法备份 Windows 数据。

重要

SQL Server 2008 或更高版本可以读取压缩备份。 有关详细信息,请参阅备份压缩 (SQL Server)

覆盖备份集

使用 BACKUP 语句中的 INIT 选项来指定是否覆盖现有的备份集。 此选项覆盖介质上的所有备份集,并保留媒体标头(如果有)。 如果不存在媒体标头,则会创建一个。

对于磁带头文件,保留原位是有意义的。 对于磁盘备份介质,仅覆盖在备份操作中指定的备份设备使用的文件,而磁盘上的其他文件不受影响。 当覆盖备份时,将保留所有现有的媒体标头,并将新的备份创建为备份设备上的首个备份。 如果没有现有的媒体标头,则会自动写入具有关联媒体名称和媒体说明的有效媒体标头。 如果现有媒体标头无效,则备份作业将终止。 如果媒体为空,则使用给定的 MEDIANAME、MEDIAPASSWORD 和 MEDIADESCRIPTION 生成新的媒体标头(如果有)。

重要

从 SQL Server 2012 开始,MEDIAPASSWORD 选项已停止用于创建备份。 但是,仍然可以还原使用密码创建的备份。

如果存在以下任一条件,则不会覆盖备份介质:

  • 介质上的现有数据备份尚未过期。 (如果指定 SKIP,则不会检查过期。

    到期日期指定备份过期的日期,并可由另一个备份覆盖。 可以在创建备份时指定到期日期。 默认情况下,过期日期由使用sp_configure设置的媒体保留选项确定。 有关详细信息,请参阅sp_configure(Transact-SQL)。

  • 如果提供了媒体名称,该名称与备份介质上的名称不匹配。

    媒体名称是一个描述性名称,用于轻松识别媒体。

如果确定要覆盖现有媒体(例如,如果知道不再需要磁带上的备份),可以显式跳过这些检查。

如果备份介质受 Microsoft Windows 保护,Microsoft SQL Server 不会写入媒体。 若要覆盖受密码保护的媒体,必须重新初始化媒体。

序列号

对于一个介质集中的多个媒体系列或一个媒体系列中的多个备份介质,正确的顺序非常重要。 因此,备份通过以下方式分配序列号:

  • 媒体集中的顺序媒体家族

    在媒体集中,媒体组根据在媒体集中所处的位置按顺序编号。 媒体系列编号记录在 backupmediafamily的 family_sequence_number 列中。

  • 媒体家族中的物理媒体

    媒体序列号指示媒体系列中物理媒体的顺序。 初始备份介质的序列号为 1。 这个被标记为 1;第二个(第一卷延续磁带)被标记为 2;如此类推。 还原备份集后,媒体序列号可确保还原备份的作员按正确的顺序装载正确的介质。

多个设备

使用多个磁带驱动器或磁盘文件时,需要注意以下事项:

  • 备份:

    由备份操作创建的完整媒体集必须由所有后续备份操作使用。 例如,如果使用两个磁带备份设备创建了介质集,则涉及同一介质集的所有后续备份作都必须使用两个备份设备。

  • 对于还原:

    对于从磁盘备份进行的任何还原以及任何联机还原,必须同时装载所有媒体系列。 对于从磁带备份进行脱机还原,可以使用较少的备份设备来处理媒体组。 在开始处理另一个媒体系列之前,必须完全处理每个媒体系列。 媒体系列始终并行处理,除非使用单个设备进行还原。

相关任务

创建新的媒体集

将新备份追加到现有介质

覆盖现有备份集

设置到期日期

查看媒体序列号和家族序列号

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

在备份设备上读取媒体标头

另请参阅

备份和还原 SQL Server 数据库备份和还原过程中可能的媒体错误(SQL Server)备份历史记录和标头信息(SQL Server)镜像备份媒体集(SQL Server)BACKUP(Transact-SQL)RESTORE(Transact-SQL)RESTORE REWINDONLY(Transact-SQL)sp_configure(Transact-SQL)