使用镜像备份媒体集

注意注意

只有 SQL Server 2005 Enterprise Edition 和更高版本支持镜像备份媒体集。

镜像媒体集通过降低备份设备故障的影响来提高备份的可靠性。由于备份是防止数据丢失的最后“防线”,因此备份设备出现故障的后果是非常严重的。随着数据库大小的增加,备份设备或媒体发生故障致使备份不可还原的可能性也相应增加。镜像备份媒体通过提供冗余来提高备份的可靠性。

注意注意

有关媒体集的一般信息,请参阅媒体集、媒体簇和备份集

镜像媒体集简介

媒体镜像是媒体集的一个属性。“镜像媒体集”是由媒体集的多个副本(镜像)组成的。媒体集包含一个或多个媒体簇,其中每个媒体簇对应一个备份设备。例如,如果 BACKUP DATABASE 语句的 TO 子句列出三个设备,则 BACKUP 将数据分布在三个媒体簇中,每个设备一个媒体簇。媒体簇和镜像的数量在创建媒体集时进行定义(使用指定了 WITH FORMAT 的 BACKUP DATABASE 语句)。

注意注意

有关媒体簇和媒体集的介绍信息,请参阅媒体集、媒体簇和备份集

一个镜像媒体集包含两个到四个镜像。每个镜像包含媒体集中的所有媒体簇。镜像必须有相同的设备数,每个媒体簇一个设备。每个镜像要求每个媒体簇都有一个单独的备份设备。例如,包含四个媒体簇、三个镜像的镜像媒体集需要十二个备份设备。所有这些设备必须是相同的。例如,使用同一制造商提供的同一型号的磁带机。

下图显示了包含两个媒体簇、两个镜像的镜像媒体集示例。每个媒体簇都包含三个媒体卷,这些媒体卷在每个镜像中都备份一次。

镜像媒体集:具有两个镜像的两个媒体簇

镜像中的对应卷都具有相同的内容。这样,还原时它们可以互换。例如,在上图中,tape2 的第三卷可以与 tape0 的第三卷互换。

指定镜像媒体集

若要在 BACKUP 语句中指定镜像媒体集,请在 TO 子句中指定第一个镜像。然后,在它自己的 MIRROR TO 子句中指定每个镜像。TO 和 MIRROR TO 子句必须指定相同数量和类型的备份设备。

下面的示例创建了上图中描述的镜像媒体集,并将 AdventureWorks 数据库备份到两个镜像中。

BACKUP DATABASE AdventureWorks
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1'
MIRROR TO TAPE = '\\.\tape2', TAPE = '\\.\tape3'
WITH
    FORMAT,
    MEDIANAME = 'AdventureWorksSet1';
GO

备份镜像的硬件要求

磁盘和磁带可作为备份镜像的设备(磁盘不支持延续磁带)。与以前版本的 SQL Server 一样,用于单个备份或还原操作的所有备份设备的类型必须相同(磁盘或磁带)。

在这些广泛的设备类别中,必须使用具有相同属性的相似设备。设备不够相似会生成错误消息 (3212)。为了避免出现设备不匹配的情况,请使用相同的设备,例如,只使用同一制造商提供的同一型号的设备。

媒体镜像工作方式

备份和还原操作对是否必须存在所有镜像有不同的要求。对写入(即创建或扩展)镜像媒体集的备份操作,必须存在所有镜像。而还原操作一次只能读取媒体上每个媒体簇的一个镜像。不过,在出现错误的情况下,如果具有其他镜像则可以快速解决某些还原问题。这是因为 RESTORE 和 RESTORE VERIFYONLY 支持使用其他镜像中的相应备份媒体卷替换损坏的媒体。注意,从其进行还原的设备可以少于媒体簇,但每个媒体簇只能处理一次。

SQL Server 数据库引擎通过将数据同步写入设备来保证镜像媒体具有相同的内容。填充任一镜像时,同时也会填充所有镜像。

注意注意

不能通过删除某个镜像来隐性分割(拆分)镜像媒体集。如果某个镜像中磁带或磁盘已损坏或已经过重新格式化,则该镜像不能再用于其他备份。至少有一个完整镜像保持完好无损时,才可以读取媒体集。如果每个镜像都丢失了指定的媒体簇,则媒体集将不再可用。

备份至镜像备份设备

从镜像备份还原