症状
假设你有一个 Microsoft SQL Server 2014、2016 或 2017 实例,该实例启用了 (BPE) 。 如果遇到在 BPE 文件上发生的 I/O 错误,则 BPE 可能被禁用,并记录类似于以下内容的缓冲区超时错误:
注意
L2 缓冲池写入错误...
已成功禁用缓冲池扩展。 正在删除缓冲池扩展“file_path”。
等待缓冲区闩锁时发生超时 -- 类型 4...
错误:845,严重性:17,状态:1。
等待页 (page_id) 的缓冲区闩锁类型 4 时发生超时...
错误:5901,严重性:16,状态:1。
属于数据库“database_name”的一个或多个恢复单元无法生成检查点。 这通常是由于缺少系统资源(例如磁盘或内存),或者在某些情况下,由于数据库损坏。 检查错误日志中以前的条目,了解有关此失败的更多详细信息。
等待缓冲区闩锁时发生超时 -- 类型 3...
发生此问题时,会保留一些孤立的缓冲区闩锁,并且任何操作(如 DBCC CHECKDB、CHECKPOINTING 或 BACKUP LOG)都失败。
注意如果更新为 SQL Server 2014 Service Pack 1 的累积更新 1,则仍无法解决错误。
解决方法
累积更新信息:
以下针对SQL Server更新中修复了此问题:
SQL Server 2016 Service Pack2 的累积更新 5
SQL Server 2014 Service Pack 3 的累积更新 1
SQL Server 2014 Service Pack 2 的累积更新 15
关于 SQL Server 的累积更新
SQL Server 的每个新累积更新都包含先前内部版本中的所有修补程序和安全修补程序。 我们建议您安装 SQL Server 的最新版本:
按需修补程序信息:
以下针对SQL Server的按需修补程序更新中修复了此问题:
SQL Server 2016 SP2 CU4 的按需修补程序更新
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
参考资料
了解Microsoft用于描述软件更新 的术语 。