使用 VSS 备份应用程序备份数据库

您所在的位置:网站首页 vss模型11还原多少钱 使用 VSS 备份应用程序备份数据库

使用 VSS 备份应用程序备份数据库

#使用 VSS 备份应用程序备份数据库| 来源: 网络整理| 查看: 265

对于某些数据库,使用 VSS 备份应用程序备份SQL Server数据库可能会失败 项目 06/20/2023

本文可帮助你解决使用卷影复制服务 (基于 VSS) 的应用程序备份SQL Server数据库时出现的问题。

原始产品版本:SQL Server 原始 KB 编号: 2014054

症状

使用卷影复制服务 (基于 VSS) 的应用程序来备份SQL Server数据库时,如果数据库名称包含前导或尾随空格或不可打印字符,则备份操作可能会失败。

尝试备份包含这些数据库之一的卷时,也可能会出现相同的问题。

原因

基于 VSS 的备份应用程序使用 SQLServerWriter (SQLWriter) 查询编写器元数据组件信息,以确定需要备份的数据库文件。 编写器元数据组件由 SQLWriter 使用 VSS API 创建,包含三组数据:

编写器标识和分类信息 编写器级规范 组件数据

当数据库名称包含前导空格、尾随空格或不可打印字符时,可能无法成功创建此文档。 因此,基于 VSS 的应用程序将无法备份这些数据库或任何包含这些数据库的卷。

解决方案

重命名名称中包含前导空格或尾随空格或不可打印字符的所有数据库。 可以使用以下查询查找名称的前面或末尾是否存在此类字符:

SELECT database_id AS DatabaseID, '##'+name+'##' AS DatabaseName FROM sys.databases

示例输出:

DatabaseID DatabaseName 8 ##AdventureWorks## -- DB name is fine 15 ## DBWithLeadingSpace## -- DB name contains leading spaces 17 ##DBWithTrailingSpace ## -- DB name contains trailing spaces

注意

在前面的查询中,如果数据库名称包含不可打印的字符,则它们可能以空格或垃圾邮件的形式打印出来。

更多信息

编写器 ((如 SQL 编写器)) 使用 IVssCreateWriterMetadata::AddComponent 添加组件,并指定以下组件信息:

类型 名称 逻辑路径 ((如果有任何) ) 支持的功能 可选择性 还原期间编写器要使用的元数据 显示信息 通知信息

C (卷影复制服务) 是构成用于备份和还原的逻辑单元的文件集合。 组件 (除显式排除) 文件之外的所有文件都必须作为一个单元进行备份和还原。

有关详细信息,请参阅 VSS 元数据。

可以使用以下一个或多个方法来识别是否遇到此问题:

各种备份应用程序可能会引发有关 SqlServerWriter 找不到 (或 SQLWriter) 自定义消息。

在目标SQL Server计算机上从命令提示符执行时,在输出中看不到SqlServerWriter。

vssadmin 列表编写器



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3