KB4521659 - 修复:SQL 编写器服务在 SQL Server 2016、2017 和 2019 中无法在非组件备份路径中备份

应用对象
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2019 on Windows

症状

SQL 编写器服务不处理数据库快照,例如 (SQL Server 2016、2017 或 2019 中的非组件备份代码路径中的“CREATE DATABASE DataSnapName AS SNAPSHOT”) 。 在卷影复制服务 (VSS) 备份操作期间针对快照运行 BACKUP DATABASE 时,可能会注意到以下错误日志条目。

      

DateTime 备份 BACKUP 无法完成命令 BACKUP DATABASE DataSnapName。 检查备份应用程序日志以获取详细消息。

DateTime 备份错误:3041,严重性:16,状态:1。

DateTime 备份 备份 无法完成命令 BACKUP DATABASE DatabaseName. 检查备份应用程序日志以获取详细消息。

DateTime spid## 错误:18210,严重性:16,状态:1。

DateTime spid## BackupVirtualDeviceFile::P repareToFreeze: 备份设备“{DeviceToken}1”上失败。 操作系统错误 995 (I/O 操作由于线程退出或应用程序请求而中止。) .

      

备注 前面列出的错误是一般性的,可能会在许多场景中发生。 也就是说,“DatabaseName”上的错误只是因为 DataSnapName 上的错误导致的中止。 当前修补程序仅解决了在为 VSS 备份选择的驱动器上存在 SQL Server 数据库快照时发生这些错误的情况。

      

同时,Windows 应用程序事件日志可能包含类似于以下内容的条目:

      

错误 DataTime SQLWRITER 24583 无

Sqllib 错误:OLEDB 调用 ICommandText::Execute 时遇到错误。 hr = 0x80040e14。 SQLSTATE: 42000,本机错误: 3013

错误状态:1,严重性:16

来源: Microsoft SQL Server Native Client 11.0

错误消息:备份数据库正在异常终止。

SQLSTATE: 42000,本机错误: 3002

错误状态:1,严重性:16

来源: Microsoft SQL Server Native Client 11.0

错误消息:无法备份或还原数据库快照。

      

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

解决方法

此问题已在 SQL Server 的以下累积更新中修复:

关于 SQL Server 的累积更新:

SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

参考资料

了解 Microsoft 用于描述软件更新的术语。