覆盖备份集

覆盖现有备份集是使用 BACKUP 语句的 INIT 选项指定的。此选项将覆盖介质上的所有备份集并保留介质标头(如果有)。如果没有介质标头,则创建一个标头。

对于磁带标头,适当地保留标头还是很有帮助的。对于磁盘备份介质,只覆盖备份操作中指定的备份设备所使用的文件;磁盘上的其他文件不受影响。覆盖备份时,保留现有的所有介质标头,同时将新的备份创建为备份设备中的第一个备份。如果没有现有的介质标头,将自动编写一个带相关介质名称和介质描述的有效介质首部。如果现有的介质标头无效,备份操作将终止。如果介质为空,则使用给定的 MEDIANAME、MEDIAPASSWORD 和 MEDIADESCRIPTION(如果存在)生成新的介质标头。

注意注意

MEDIAPASSWORD 选项已不推荐使用。下一版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

满足下列任一条件时不覆盖备份介质:

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

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

  • 介质名称(如果有)与备份介质上的名称不匹配。

    介质名称是一个描述性名称,用于方便地识别介质。

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

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

使用 Transact-SQL 覆盖现有的备份集

使用 SQL Server Management Studio 覆盖现有的备份集

使用 SQL Server 管理对象 (SMO) 覆盖现有的备份集