升级到 SQL Server 2022 时出现的问题

适用于: SQL Server 2022、SQL Server 2019、SQL Server 2017、SQL Server 2016

总结

本文介绍升级到 SQL Server 2022 时可能会遇到的常见问题,并为每个问题提供解决方法和解决方法。 涵盖的场景包括:与轻量级查询分析相关的访问冲突转储文件、因 SQL Server 部分安装而受阻的升级、升级后无法联机的故障转移群集实例(FCI),以及当分发数据库属于 Always On 可用性组(AG)时出现的复制升级脚本错误。 使用本指南排查升级到 SQL Server 2022 时失败的就地升级问题,并使 SQL Server 实例重新联机。

在 AlwaysOn 环境中升级期间访问冲突转储

在 Always On 环境中升级到 SQL Server 2022 时,会发生此错误。 错误消息和关联的日志条目指示在升级过程中生成的致命异常。

错误消息

异常代码:c0000005 EXCEPTION_ACCESS_VIOLATION

应用程序事件日志

Error: A user request from the session with SPID <SPID> generated a fatal exception. SQL Server is terminating this session.
Information: Windows Error Reporting - Fault bucket INVALID_REQUEST, type 0

SQL Server错误日志

Error: A user request from the session with SPID <SPID> generated a fatal exception. SQL Server is terminating this session. Contact Product Support Services with the dump produced in the log directory.

解决方案

这是 SQL Server 2022 中与 LIGHTWEIGHT_QUERY_PROFILING 相关的已知问题。

此问题已在 SQL Server 2022 累积更新 4SQL Server 2019 累积更新 20 中修复。

解决方法

如果你暂时无法应用累积更新,请关闭 LIGHTWEIGHT_QUERY_PROFILING。 可通过使用 数据库范围配置在数据库级别关闭LIGHTWEIGHT_QUERY_PROFILING

ALTER DATABASE SCOPED CONFIGURATION SET LIGHTWEIGHT_QUERY_PROFILING = OFF;

升级被处于非活动状态的 SQL Server 2022 实例阻止

无法升级到 SQL Server 2022,因为计算机SQL Server 2022 实例处于非活动状态。

原因

当以前的SQL Server安装失败并在计算机上留下部分安装的实例时,会出现此问题。 SQL Server安装程序不会在发生故障时自动回滚安装。 部分安装的实例不包括尝试安装的SQL Server版本,这会导致以后尝试安装同一版本失败。

解决方案

按照删除部分安装SQL Server中的步骤操作,然后重启升级。

升级后故障转移群集实例无法联机

在故障转移群集实例(FCI)上将SQL Server从早期版本升级到 SQL Server 2022 后,该实例可能无法联机。 在故障转移群集管理器中,SQL Server角色显示为失败且实例未启动。

原因

SQL Server实例停滞在脚本升级模式下,从而阻止其启动。 在升级期间,SQL Server作为启动序列的一部分运行升级脚本。 如果其中一个脚本失败或未完成,则实例将保持脚本升级模式,并且无法联机。

解决方法

若要使SQL Server实例联机,请按照应用更新时解决升级脚本故障中的步骤绕过正在运行的升级脚本。

注意

-T902 跟踪标志在启动期间关闭升级脚本执行。 修复升级脚本中的根本问题后,删除跟踪标志,以便处于挂起状态的升级步骤能够完成。

当分发数据库位于可用性组中时,复制升级脚本出现错误

在可用性组(AG)中托管分发数据库的服务器上升级到 SQL Server 2022 时,会发生复制错误。

注意

将 SQL Server 从版本 2016 SP2 CU3、SQL Server 2017 CU6 或更高版本升级到 SQL Server 2019 时,也可能出现此问题。 此问题的修补程序在 SQL Server 2019 累积更新 21 中可用。

错误消息

SQL Server安装程序完成,但显示复制组件出现“执行复制升级脚本时出错”错误。 如果在处于此状态的实例上运行修复,则会收到相同的错误消息。

SQL Server错误日志

Executing sp_vupgrade_replication.
Could not open distribution database <distribution_db_name> because it is offline or being recovered. Replication settings and system objects could not be upgraded. Be sure this database is available and run sp_vupgrade_replication again.
Error executing sp_vupgrade_replication.
Saving upgrade script status to 'SOFTWARE\Microsoft\MSSQLServer\Replication\Setup'.

原因

当分发数据库是 AG 的一部分并且尝试就地升级时,会发生此错误。

解决方案

该修复已在 SQL Server 2022 的累积更新 5 中提供。

解决方法

如果无法应用累积更新,请使用以下步骤:

  1. 从 AG 中删除分发数据库。
  2. 运行升级到 SQL Server 2022。
  3. 升级完成后,将分发数据库重新添加到 AG 中。