适用于: SQL Server 2022、SQL Server 2019、SQL Server 2017、SQL Server 2016
本文提供了在执行升级到 SQL Server 2022 时排查和解决以下常见问题的步骤。
问题 1:与访问冲突转储相关的错误
在 AlwaysOn 环境中执行到 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 累积更新 4 和 SQL Server 2019 累积更新 20 中修复。
解决方法:
若要解决此问题,请禁用 LIGHTWEIGHT_QUERY_PROFILING
。 可以使用数据库范围配置在数据库级别LIGHTWEIGHT_QUERY_PROFILING
禁用轻型分析: ALTER DATABASE SCOPED CONFIGURATION SET LIGHTWEIGHT_QUERY_PROFILING = OFF;
问题 2:与 SQL Server 2022 的非活动实例相关的错误
由于 SQL Server 2022 的非活动实例,无法升级到 SQL Server 2022。
原因:
如果以前安装 SQL Server 失败,导致计算机上部分安装的实例丢失,则会出现此问题。 如果出现故障,SQL Server 安装程序不会自动回滚安装。 部分安装的实例不包括尝试安装的 SQL Server 版本,导致尝试升级到同一版本的后续安装失败。
解决方法:
若要解决此问题,请按照删除 SQL Server 的部分安装中所述的步骤进行操作。
问题 3:故障转移群集实例无法联机
在故障转移群集实例(FCI)上将 SQL Server 从早期版本升级到 2022 后,可能会遇到实例无法联机的情况。 检查群集管理器上的 FCI 角色时,你会注意到实例无法启动。
可能的原因:
此问题的一个可能原因是 SQL Server 实例可能处于脚本升级模式,从而阻止其启动。 在升级过程中,SQL Server 会执行几个步骤以确保顺利转换,包括执行升级脚本。 如果实例停滞在脚本升级模式下,则无法联机。
解决方法:
若要解决此问题并成功使 SQL Server 实例联机,可以按照应用更新时排查升级脚本故障中的步骤绕过正在运行的升级脚本。
注意
-T902 参数在启动期间禁用升级脚本执行。
问题 4:与复制相关的错误
在可用性组(AG)中托管 分发数据库的 计算机上升级到 SQL Server 2022 时,会发生与复制相关的错误。
注意
将 SQL Server 从版本 2016 SP2 CU3、SQL Server 2017 CU6 或更高版本升级到 SQL Server 2019 时,也可能出现此问题。 此问题的修补程序在 SQL Server 2019 累积更新 21 中可用。
错误消息:
SQL 安装程序已完成,但显示复制组件出现“执行复制升级脚本时出错”错误。 如果尝试在此状态下对实例运行修复,将收到相同的错误消息。
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 中可用。
解决方法:
若要解决此问题,请执行以下步骤:
- 从 AG 中删除分发数据库。
- 继续升级到 SQL Server 2022。
- 完成升级后,将分发数据库添加回 AG。