本文可帮助你排查安装 Microsoft SQL Server 累积更新(CU)或 Service Pack(SP)时发生的错误 17182。 运行数据库升级脚本时发生错误。
现象
为 SQL Server 应用 CU 或 SP 时,安装程序将报告以下错误:
等待数据库引擎恢复句柄失败。 有关可能的原因,请查看 SQL Server 错误日志。
检查 SQL Server 错误日志时,会看到如下所示的错误:
2019-04-27 00:49:59.53 spid13s Unable to initialize SSL encryption because a valid certificate could not be found, and it is not possible to create a self-signed certificate.
2019-04-27 00:49:59.53 spid13s Error: 17182, Severity: 16, State: 1.
2019-04-27 00:49:59.53 spid13s TDSSNIClient initialization failed with error 0x80090331, status code 0x80. Reason: Unable to initialize SSL support. The client and server cannot communicate, because they do not possess a common algorithm.
2019-04-27 00:49:59.53 spid13s Error: 17182, Severity: 16, State: 1.
2019-04-27 00:49:59.53 spid13s TDSSNIClient initialization failed with error 0x80090331, status code 0x1. Reason: Initialization failed with an infrastructure error. Check for previous errors. The client and server cannot communicate, because they do not possess a common algorithm.
2019-04-27 00:49:59.53 spid13s Error: 17826, Severity: 18, State: 3.
2019-04-27 00:49:59.53 spid13s Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log.
2019-04-27 00:49:59.53 spid13s Error: 17120, Severity: 16, State: 1.
2019-04-27 00:49:59.53 spid13s SQL Server could not spawn FRunCommunicationsManager thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.
原因
如果在服务器上禁用了 TLS 1.0,并且你尝试安装 Microsoft sql Server 2012 或 2014 的一个内部版本,该版本不包含用于启用 TLS 1.2 支持的修补程序,则会出现此问题。 有关此问题的详细信息,请参阅KB3135769 - 修复:在启用了 TLS 1.2 的服务器上安装 SQL Server 2012 或 SQL Server 2014 时出错(microsoft.com)。
解决方法
若要解决 17182 错误,请执行以下步骤:
要求系统管理员使用以下任一方法在客户端和服务器计算机上临时启用 TLS 1.0 或 TLS 1.1:
- IIS Crypto(Schannel 部分),用于验证和更改当前 TLS 设置
- 每个特定于 Schannel 的注册表项的注册表编辑器
有关详细信息,请参阅 TLS 1.2 升级工作流和升级到 TLS 1.2 之后的 SSL 错误。
重新启动 SQL Server 服务。
运行 SQL Server 2012 或 2014 安装程序,并将 SQL Server 版本更新为支持 TLS 1.2 的生成。 有关添加对 TLS 1.2 的支持的更新的详细信息,请参阅 KB KB3052404 - 修复:无法使用传输层安全协议版本 1.2 连接到运行 SQL Server 2014 或 SQL Server 2012(microsoft.com)的服务器。
禁用 TLS 1.0 或 TLS 1.1。
重新启动 SQL Server 服务。