SQL Server backupset 历史记录表中记录备份操作时使用 VSS 进行备份的卷上的文件

适用于: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL 2005 Server WorkgroupMicrosoft SQL Server 2005 Developer Edition

症状


请考虑以下情形。您可以在卷上安装 Microsoft SQL Server。卷影复制服务 (VSS) 应用程序用于备份的卷上的文件。在这种情况下,SQL Server 记录备份操作 backupset 历史记录表中。即使您没有实际备份的 SQL Server 数据库文件,将出现此问题。

注意:NTBackup.exe 实用程序是一个 VSS 的应用程序。

原因


发生此问题是因为 VSS 调用 SQLWriter 服务或 Microsoft SQL Server 桌面引擎 (MSDE) 编写器。

状态


Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

详细信息


MSDE 编写器和 SQLWriter 服务的说明

在 VSS 框架中在 Windows XP 和 Windows Server 2003 包含 MSDE 编写器。VSS 使用 MSDE 编写器备份 SQL Server 2000年数据库。当您安装 SQL Server 2005 安装了 SQLWriter 服务。VSS 使用 SQLWriter 服务备份 SQL Server 2005 数据库和 SQL Server 2000年数据库。

VSS 备份操作的执行方式

当 VSS 执行备份操作的卷上时,VSS 调用所有编写器具有在该卷上的数据。这将确保该备份有效。当 VSS 调用 SQLWriter 服务或 MSDE 编写器,SQLWriter 服务或 MSDE 编写器向 backupset 历史记录表中插入一条记录。此记录显示,执行备份操作。但是,SQLWriter 服务或 MSDE 编写器不能确定 VSS 备份这些文件是否是数据库文件。

如果您使用 backupset 历史记录表中数据恢复各项需要的预防措施

如果您想要使用 backupset 历史记录表中的条目进行数据恢复,您必须验证条目表示实际的数据库备份操作。

如何验证条目表示实际的数据库备份操作

若要执行此操作,请运行下面的语句︰
USE msdbGO

SELECT server_name, database_name, backup_start_date, is_snapshot, database_backup_lsn
FROM backupset
在结果中,请注意 database_backup_lsn 列和 is_snapshot 列。表示实际的数据库备份操作的项具有以下特征︰
  • Database_backup_lsn 列中的值不是 0。
  • Is_snapshot 列中的值为 0。

验证备份集已无错误

若要执行此操作,请运行下面的语句︰

WITH backupInfo AS( SELECT database_name AS [DatabaseName], name AS [BackupName], is_damaged AS [BackupStatus],
backup_start_date AS [backupDate],
ROW_NUMBER() OVER(PARTITION BY database_name
ORDER BY backup_start_date DESC) AS BackupIDForDB
FROM msdb..backupset) SELECT DatabaseName
FROM backupinfo WHERE BackupIDForDB = 1 and BackupStatus=1


如果该查询返回任何结果,则意味着您没有良好的数据库备份后的报告的日期。我们强烈建议您
尽可能快地执行完整的数据库备份并验证完整数据库备份干净。

Is_damaged 属性
在 msdb 数据库中的 backupset 表包含每个备份集的行。Backupset 表中的is_damaged属性表示创建备份时是否检测到数据库损坏。因此,备份可能已损坏并且不可恢复。

规则软件规则标题规则说明对规则进行评估所依据的产品版本
系统中心顾问SQL Server 数据库 Backupset 标记为损坏在此 SQL Server 实例顾问检测到一个或多个 backupset 标记为"损坏"在 MSDB 数据库中。这意味着备份文件已损坏,实质上是数据库公开和可能的非还原的备份。查看收集信息部分,并确保后续的完好备份适用于有问题的数据库。请参阅有关知识库文章更多详细信息。SQL Server 2008
SQL Server 2008 R2
SQL Server 2012


参考资料


有关 SQL 编写器服务的详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) Web 站点︰
有关 backupset 历史记录表的详细信息,请访问下面的 MSDN 网站︰