修复:使用 EKM 生成加密和密钥生成的大容量客户工作负荷的数据库辅助功能问题
现象
使用 可扩展密钥管理(EKM) 的高批量客户工作负荷可能会遇到间歇性数据库辅助功能问题。 这些辅助功能问题是由需要访问 Azure 密钥库(AKV)的虚拟日志文件(VLF)频繁创建或轮换引起的。 如果 AKV 或支持服务(如 Microsoft Entra ID)在此创建或轮换期间无法访问,则无法执行 VLF 的创建或旋转。 此外,它还会导致数据库辅助功能问题。
当事务日志文件较小或事务日志的自动增长(自动增长)增量较小时,可以频繁创建或轮换 VDF,而不是足够大,无法满足工作负荷事务的需求。 有关详细信息,请参阅 管理事务日志文件的大小。
可以使用 sys.dm_db_log_info 监视 VDF 的大小和创建频率。
解决方法
此问题已在 SQL Server 的以下累积更新中修复:
此修补程序引入了启动跟踪标志 (TF) 15025。 可以使用 TF 15025 禁用新创建的 VLF 所需的 AKV 访问,从而允许大量客户工作负荷在不中断的情况下继续。 启用此跟踪标志后,使用 EKM 进行加密的 SQL Server 在创建或轮换 VLF 期间不会联系 AKV。
若要检查 AKV 中的密钥是否仍在使用或需要禁用,必须对数据库执行以下操作之一:
- 执行数据库或事务日志的备份(任何类型的备份)。
- 针对加密的数据库运行
DBCC CHECKDB
。 - 将加密的数据库设置为
OFFLINE
状态,然后将该ONLINE
状态设置为状态。 - 创建加密数据库的数据库快照。
在任何列出的操作中,SQL Server 都将联系 AKV,并在此操作期间检查密钥访问(如果 AKV 中存在密钥)。
即使启用 TF 15025,这些操作仍将达到 AKV。
可以运行以下 Transact-SQL (T-SQL) 语句来检查数据库中密钥的状态:
SELECT * FROM sys.dm_database_encryption_keys
关于 SQL Server 的累积更新
SQL Server 的每个新的累积更新都包含上一个版本中的所有修补程序和安全修补程序。 建议为 SQL Server 版本安装最新版本:
Status
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。