位置:GZ医疗队 > 公益纪实 > 公益站长 > 网络技术 >
SQL Server 备份与恢复之六:介质集与备份集(2)
来源:未知 作者:seagull8111 点击:次 时间:2013-04-19
DISK = N'C:\Backup\BakFile2.bak',
[BackupDevice1]
WITH FORMAT, INIT,
NAME = N'AdventureWorks2008R2-完整 数据库 备份',
SKIP, NOREWIND, NOUNLOAD, STATS = 10
三、备份集
1、新建备份集
成功的备份操作将向介质集中添加一个“备份集”。在每个介质上,备份集都包含说明备份集的标头。
下例显示一个 Transact-SQL 语句,该语句使用三个磁带机作为备份设备,为 AdventureWorks2008R2 数据库创建一个名为 MyAdvWorks_MediaSet_1 的介质集。
BACKUP DATABASE AdventureWorks2008R2
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1', TAPE = '\\.\tape2'
WITH FORMAT,
MEDIANAME = 'MyAdvWorks_MediaSet_1';
如果成功,此备份操作将生成一个新的介质集,该介质集包含一个新介质标头和一个分布在三个磁带设备上的备份集。下图说明了这些结果:
2、追加备份集
为了尽可能利用可用空间,通常将新的备份集追加到现有媒体集。追加到备份时会保留所有以前的备份。
通常,创建介质集后,后续备份操作将依次向介质集追加其备份集。备份集使用的所有介质构成了介质集,而与所涉及到的介质或备份设备的数量无关。备份集按照其在介质集中的位置依次编号,从而使您能够指定还原哪个备份集。
介质集的每个备份操作都必须写入相同数量和类型的备份设备。如果使用多个设备,则与第一个备份集相同,每个后续备份集的内容都分布在所有设备的备份介质中。为了继续上面的示例,第二个备份操作(差异备份)将向同一介质集追加信息:
BACKUP DATABASE AdventureWorks2008R2
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1', TAPE = '\\.\tape2'
WITH NOINIT,
MEDIANAME = 'AdventureWorksMediaSet1',
DIFFERENTIAL;
注意: “追加”是 BACKUP 的默认行为,可以通过使用 NOINIT 选项显式指定追加。但为清楚起见,要包括此选项。
如果第二个备份操作成功,将向介质集写入第二个备份集,并按以下方式分布备份内容:
3、覆盖备份集
SQL Server 备份提供防止意外覆盖媒体的安全措施。但是,备份集到达预定义的到期日期时,备份会自动覆盖备份集。
也可以通过以下选项显示地说明:
(1)“追加到现有备份集”即:WITH NOFORMAT, NOINIT
(2)“覆盖所有现有备份集”即:WITH NOFORMAT, INIT
覆盖现有备份集是使用 BACKUP 语句的 INIT 选项指定的。此选项将覆盖媒体上的所有备份集并保留媒体标头(如果有)。如果没有媒体标头,则创建一个标头。
对于磁带标头,适当地保留标头还是很有帮助的。对于磁盘备份媒体,只覆盖备份操作中指定的备份设备所使用的文件;磁盘上的其他文件不受影响。覆盖备份时,保留现有的所有媒体标头,同时将新的备份创建为备份设备中的第一个备份。如果没有现有的媒体标头,将自动编写一个带相关媒体名称和媒体描述的有效媒体首部。如果现有的媒体标头无效,备份操作将终止。如果媒体为空,则使用给定的 MEDIANAME、MEDIAPASSWORD 和 MEDIADESCRIPTION(如果存在)生成新的媒体标头。
注意:下一版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。
“检查介质集名称和备份过期时间”可以显式申明在满足下列任一条件时不覆盖备份媒体:
(1)媒体上的现有备份尚未过期(如果指定 SKIP,则不检查过期。)过期日期将指定备份过期的日期,并可以由另一个备份覆盖。创建备份时可以指定过期日期。默认情况下,过期日期由 sp_configure 设置的 media retention 选项确定。有关详细信息,请参阅 sp_configure (Transact-SQL)。
(2)媒体名称(如果有)与备份媒体上的名称不匹配。媒体名称是一个描述性名称,用于方便地识别媒体。
如果确实想要覆盖现有媒体(例如知道不再需要磁带上的备份),则可以显式跳过这些检查。
如果备份媒体受 Windows 密码保护,则 SQL Server 不会写入媒体。若要覆盖有密码保护的媒体,必须重新初始化该媒体。
四、条带化与镜像
1、条带备份
例如, BACKUP DATABASE 语句的 TO 子句列出三个设备,则 BACKUP 将数据分布在三个介质中。
TO DISK = N'C:\Backup\BakFile1.bak',
DISK = N'C:\Backup\BakFile2.bak',
[BackupDevice1]
通过一个称为“并行条带备份”的进程,SQL Server 能同时执行备份到多个备份设备,因此可以显著提高备份操作的速度。这个速度的关键是有可用于备份的同一类型的独立的物理设备,例如3个不同的磁带设备,或3个不同的磁盘驱动器。
当您使用多个磁带机或磁盘文件时,请注意以下事项: