KB5023049 - SQL Server 2019 的累积更新 19
发布日期:
2023/2/16
版本:
15.0.4298.1
注意
此累积更新包括安全更新5021125。 有关详细信息,请参阅 (KB5021125 - SQL Server 2019 GDR 安全更新说明:2023 年 2 月 14 日。
摘要
本文介绍适用于 Microsoft SQL Server 2019 的累积更新包 19 (CU19) 。 此更新包含 SQL Server 2019 累积更新 18 发布后发布的 47 个修补程序,并更新以下版本中的组件:
-
SQL Server - 产品版本:15.0.4298.1,文件版本:2019.150.4298.1
-
Analysis Services - 产品版本: 15.0.35.35,文件版本: 2018.150.35.35
此更新中的已知问题
SQL Server 2019 CU14 引入了修复程序,以解决内置SESSION_CONTEXT返回的并行计划中的错误结果。 但是,此修补程序可能会导致在重置 SESSION 以供重用时出现访问冲突转储文件。 若要缓解此问题,可以禁用原始修复,并禁用内置SESSION_CONTEXT的并行度,以避免错误结果。 为此,请使用以下跟踪标志:
-
11042 - 此跟踪标志禁用内置SESSION_CONTEXT的并行度。
-
9432 - 此跟踪标志禁用 SQL Server 2019 CU14 中引入的修补程序。
Microsoft 正在针对此问题进行修复,该修补程序将在将来的 CU 中提供。
此更新包括的改进和修补程序
包含有关各内部版本的摘要列表及其当前支持生命周期的 Excel 工作簿可供下载。 Excel 文件还包含SQL Server 2022、SQL Server 2019 和 2017 SQL Server的详细修复列表。 选择立即下载此 Excel 文件。
注意: 可以通过书签直接引用下表中的各个条目。 如果你在表中选择任何 Bug 引用 ID,则 URL 中会添加“#bkmk_NNNNNNN”格式的书签标记。 然后,你可以与其他人共享此 URL,以便其可以直接跳转到表中的相应修补程序。
有关此累积更新中包含的 bug 和增强功能的详细信息,请参阅以下 Microsoft 知识库文章。
错误参考 |
知识库文章编号 |
说明 |
修复区域 |
组件 |
Platform | |
---|---|---|---|---|---|---|
修复了以下问题:具有 DQS KB 操作员 (dqs_kb_operator) 角色或更高特权级别角色的任何成员都可以在托管SQL Server的计算机上创建或覆盖任意文件,因为运行SQL Server服务的帐户 (默认帐户是 NT SERVICE\MSSQLSERVER) 。 |
数据质量服务 |
数据质量服务 |
Windows |
|||
修复了两个SQL Server实例之间的通信中 ODBC 驱动程序中的内存损坏的罕见问题。 当目标SQL Server实例使用下级版本的表格数据流 (TDS) 协议时,会出现此问题。 不正确的版本检查会导致在连接的客户端上对映像数据类型进行不当解码。 |
SQL Server连接 |
SQL Server连接 |
Windows |
|||
汇报 2019 SQL Server msoledbsql.msi 版本从 18.2.3 升级到 18.6.5,解决了自定义操作的签名问题。 有关详细信息,请参阅Microsoft OLE DB Driver for SQL Server的发行说明。 |
SQL Server连接 |
SQL Server连接 |
Windows |
|||
修复了在运行操作系统 (操作系统) 命令时 ,sqlcmd 实用工具不遵循 sqlcmd 命令“:!!”的问题。 有关详细信息,请参阅 sqlcmd 命令。 |
SQL Server 客户端工具 |
命令行工具 |
Windows |
|||
具有自动备份的 msdb 数据库中SQL Server 代理出现性能问题和死锁。 此外,还会在 SQL Server 代理 日志中看到以下错误消息: <DateTime> SQLServer 错误:1205,事务 (进程 ID) 与另一个进程的锁资源死锁,已被选为死锁受害者。 重新运行事务。 <DateTime>无法从服务器检索作业<JobID>。 |
SQL Server 客户端工具 |
SQL 代理 |
全部 |
|||
修复了在数据文件围绕 PFS 边界增长 (8,088 页的倍数后,差异备份跳过新的页面可用空间 (PFS) 页的问题;64,704 KB) ,导致数据库损坏,并在还原此差异备份时可能出现故障转储。 |
SQL Server引擎 |
备份还原 |
全部 |
|||
修复了 Msg 17883 () ,在某些情况下,备份操作在等待挂起的 I/O 写入时无法正确处理中止信号时发生。 |
SQL Server引擎 |
备份还原 |
全部 |
|||
修复了删除启用了缓冲池扩展的Always On可用性组的可读次要副本上的数据库快照文件时发生的访问冲突问题。 |
SQL Server引擎 |
数据库管理 |
全部 |
|||
修复了断言失败 (位置:schemamgr.cpp:1253;表达式:!regularPVSHobt->m_NeedsRefresh && !longtermPVSHobt->m_NeedsRefresh) 在Always On可用性组的次要副本上运行sys.dm_tran_persistent_version_store_stats时可能发生。 |
SQL Server引擎 |
高可用性和灾难恢复 |
全部 |
|||
应用此修补程序后,cluster_nodename在 2019 SQL Server查询sys.dm_server_services时返回有效结果。 |
SQL Server引擎 |
高可用性和灾难恢复 |
全部 |
|||
修复了SQL Server资源 DLL (hadrres.dll) 从 SQL Server 检索运行状况信息时报告 SQLSTATE 失败,SQLGetData 返回SQL_ERROR。 |
SQL Server引擎 |
高可用性和灾难恢复 |
Windows |
|||
应用此修补程序后,当日志增长时,SQLServer:Databases 对象的SQL Server性能计数器“日志文件 () 大小 (KB) ”会针对Always On可用性组中的辅助副本 (AG) 进行正确更新。 |
SQL Server引擎 |
高可用性和灾难恢复 |
Windows |
|||
修复了访问空会话列表时在Always On可用性组的次要副本上发生的访问冲突问题。 当系统处理 HadrExtendedRecoveryForksMsg 或 HadrEstablishDB 等消息时,会出现此问题。 |
SQL Server引擎 |
高可用性和灾难恢复 |
全部 |
|||
修复了内部 FOR JSON 运算符后跟缓冲相应对象的运算符(例如另一个 FOR JSON 或 ORDER BY 运算符)时本机编译模块中发生的断言失败。 此外,你可能会看到以下断言表达式: 位置:memilb.cpp:<LineNumber> |
SQL Server引擎 |
内存中 OLTP |
全部 |
|||
修复了错误 41842,即使本机编译的存储过程或内存中事务在单个事务中不插入许多记录,也未正确显示。 下面是错误消息: 错误 41842:在此事务中插入或更新的行过多。 在单个事务中的内存优化表中,最多可以插入或更新 4,294,967,294 行。 |
SQL Server引擎 |
内存中 OLTP |
全部 |
|||
应用此更新后,至少需要控制服务器权限才能 sys.sp_xtp_force_gc运行过程。 此更新将过程的实现更改为对要释放的已分配字节和已用字节的单个调用。 在应用此更新之前,需要调用它两次。 有关详细信息,请参阅 逐步增加 XTP 内存消耗量。 |
SQL Server引擎 |
内存中 OLTP |
Windows |
|||
此改进添加了扩展事件功能,以增强内存中数据库可用性组中的定期主要副本到辅助副本通知调查。 将生成提供最早的活动事务和日志结束值的新事件。 此新跟踪将有助于诊断如下所示的错误: <DateTime> 错误:41316,严重性:23,状态:7。 <数据库“DatabaseName”的 DateTime>还原操作失败,内部错误代码为“0x84000004”。 |
SQL Server引擎 |
内存中 OLTP |
Windows |
|||
修复了断言失败 (位置:execcoll.cpp:1305;表达式:在 Hekaton 事务中的保存点清理过程中发生的“savepointId > HkTxSavePointDefault”) 。 |
SQL Server引擎 |
内存中 OLTP |
全部 |
|||
修复了错误 8992 [检查目录消息 3853,状态 1:sys.database_principals中行 (principal_id=ID) 的属性 (owning_principal_id=ID) 在 sys.database_principals 中没有匹配的行 (principal_id=ID) 。] 针对更改数据捕获的数据库克隆执行时,DBCC CHECKDB 生成, (CDC) 已启用的源数据库,该源数据库具有 CDC 用户拥有的系统定义角色。 |
SQL Server引擎 |
元 |
全部 |
|||
从 SQL Server 2019 CU 19 开始,CREATE EXTERNAL DATA SOURCE 支持使用 CONNECTION_OPTIONS 参数连接到 Oracle 时使用 TNS 文件。 |
SQL Server引擎 |
PolyBase |
全部 |
|||
为几何图形和地理空间数据类型添加 NullOnInvalid 方法,以正确处理无效空间数据。 这样,无论查询计划中是否使用空间索引,你都能保持一致的行为。 |
SQL Server引擎 |
可编程性 |
全部 |
|||
5017788 |
修复:使用 DMV sys.dm_exec_query_statistics_xml时,Showplan XML 中缺少 ParameterRuntimeValue |
SQL Server引擎 |
查询执行 |
全部 |
||
4538581 |
SQL Server引擎 |
查询执行 |
全部 |
|||
修复了自动解决涉及并行资源的查询间死锁的故障。 死锁通常通过SQL Server自动解决,但在应用此修补程序之前不会针对特定条件解决死锁。 因此,如果要收集 xml_deadlock_report 扩展事件,你将获得连续输出,直到手动终止问题会话。 |
SQL Server引擎 |
查询执行 |
全部 |
|||
修复了深度嵌套 APPLY 操作时发生的以下堆栈溢出错误: 消息 8621,级别 17,状态 1,行<行编号> 查询处理器在查询优化期间堆栈空间不足。 请简化查询。 备注 此修补程序允许 APPLY 运算符的嵌套深度等于或优于 SQL Server 2017 中的功能。 |
SQL Server引擎 |
查询执行 |
全部 |
|||
修复了当 CSV) 文件的逗号分隔值 (整数 (int) 值大于 int 的最大值并且在此 CSV 文件上运行 SELECT <integer_column_name>时引发正确的数据类型溢出错误。 |
SQL Server引擎 |
查询执行 |
全部 |
|||
修复程序停止报告使用存储在 查询存储 (QDS) 中的计划运行查询时@@ERROR先前发生的暂时性错误情况。 |
SQL Server引擎 |
查询执行 |
全部 |
|||
改进:检测到 BLOB 断言失败时,自动启用 blob (二进制大型对象) 跟踪环缓冲区功能。 这种改进有助于更好地调查此类问题。 |
SQL Server引擎 |
查询执行 |
全部 |
|||
修复了内部更新统计信息事务保留锁的自死锁问题,这可能导致用户查询出现未解决的死锁。 出现此问题的原因是,系统运行更新查询统计信息时未释放锁。 应用此修补程序后,可以按预期释放锁。 |
SQL Server引擎 |
查询执行 |
全部 |
|||
5022920 |
SQL Server引擎 |
查询优化器 |
全部 |
|||
修复了在执行特制的 CREATE STATISTICS 或 UPDATE STATISTICS 语句时,经过身份验证的攻击者可能会影响SQL Server内存的问题。 |
SQL Server引擎 |
查询优化器 |
全部 |
|||
5018231 |
SQL Server引擎 |
复制 |
Windows |
|||
修复了在使用非缓存连接无法连接到订阅服务器时,分发代理返回常规消息代码 20046 而不是连接失败消息代码 20084 的问题。 这些错误特定于复制分发代理。 错误消息: 20046:进程遇到常规外部错误。 |
SQL Server引擎 |
复制 |
全部 |
|||
请考虑以下情况:
在这种情况下,日志读取器代理读取器线程可能会在处理日志记录时生成以下断言转储: * 位置:replrowset.cpp:<LineNumber> |
SQL Server引擎 |
复制 |
全部 |
|||
修复了SQL Server进程中逐渐内存泄漏的问题, (事务复制中日志读取器代理导致的MEMORYCLERK_SOSNODE) 使用率过高。 |
SQL Server引擎 |
复制 |
全部 |
|||
修复了更改跟踪手动清理导致内部表具有孤立记录的问题。 以前,如果存储过程在给定表上遇到锁定超时,清理不会将表标记为重试,并继续清理列表中的下一个表。 应用此修补程序后,表将标记为重试。 |
SQL Server引擎 |
复制 |
全部 |
|||
修复了以下问题:当发布服务器位于ALWAYS ON可用性组中, (AG) 并且分发服务器上存在故障转移时,日志读取器代理创建的临时链接服务器并不总是正确删除。 应用此修补程序后,链接服务器将正确删除。 |
SQL Server引擎 |
复制 |
Windows |
|||
解决了影响更改跟踪自动清理和手动清理查询的查询性能问题。 |
SQL Server引擎 |
复制 |
全部 |
|||
修复了 2019 SQL Server 2019 (CDC) 变更数据捕获中的计时问题导致的主键冲突错误。 CDC 捕获过程可能会尝试在 cdc.lsn_time_mapping 表中插入重复 start_lsn 值,你可能会看到类似于以下错误消息: 违反 PRIMARY KEY 约束“lsn_time_mapping_clustered_idx”。 无法在对象“cdc.lsn_time_mapping”中插入重复键。 重复键值 (值) 。 备注 此修复涵盖此错误的所有原因。 对于在 SQL Server 2019 中发生的相同问题,其中安装了以前的累积更新(SQL Server 2017 和 2016 SQL Server),请参阅以前的修复 KB 4521739。 但是,以前的修复未涵盖所有情况。 |
SQL Server引擎 |
复制 |
全部 |
|||
修复了运行快照代理时发生的错误 241,并且系统日期格式已更改为与 SQL Server 使用的格式不同的格式。 错误消息: 从字符串转换日期和/或时间时转换失败。 |
SQL Server引擎 |
复制 |
全部 |
|||
5023236 |
SQL Server引擎 |
安全基础结构 |
Windows |
|||
修复了 SQL Server 2019 年数据库引擎错误消息中的拼写问题。 |
SQL Server引擎 |
SQL 引擎 |
全部 |
|||
修复了尝试运行使用 RESUMABLE = ON 选项的 CREATE INDEX 命令时,sqlmin.dll!sort_persistresumableprogress中发生的访问冲突异常。 |
SQL Server引擎 |
表索引分区 |
全部 |
|||
修复了在以下情况下创建非聚集索引时发生的错误 692:
错误消息: 消息 692,级别 22,状态 1,行<行编号> 内部错误。 为写入固定列值而提供的缓冲区太大。 运行 DBCC CHECKDB 以检查是否存在任何损坏。 备注 按聚集索引中的相同顺序指定包含的列或从 INCLUDE 子句中删除它们可以防止错误。 |
SQL Server引擎 |
表索引分区 |
Windows |
|||
启用了锁升级策略从具有空间列的用户表传播到相关空间索引的内部表,从而最大程度地降低了在高并发数据操作语言 (DML) 工作负载的情况下出现死锁的可能性。 |
SQL Server引擎 |
表索引分区 |
全部 |
|||
修复了断言问题 (位置:tabcreat.cpp:16938;表达式:idIS/8 < sizeof (bmIndexId) ) 在具有许多索引和统计信息的表上运行 ALTER TABLE ALTER COLUMN 时发生。 |
SQL Server引擎 |
表索引分区 |
Windows |
|||
修复了更改主表上的列时,即使事务与外键列无关,也会在外键表上获取架构修改 (Sch-M) 锁的问题。 应用此修补程序后,SQL Server仅获取外键表 (Sch-S) 锁的架构稳定性。 有关详细信息,请参阅 架构锁。 |
SQL Server引擎 |
表索引分区 |
全部 |