修复:使用 EKM 进行加密和生成密钥的高容量客户工作负载的数据库可访问性问题

症状

使用 可扩展密钥管理 (EKM) 的高容量客户工作负载可能会遇到间歇性数据库可访问性问题。 这些辅助功能问题是由频繁创建或轮换虚拟日志文件 (VLF) 而导致的,这需要访问 Azure 密钥保管库 (AKV) 。 如果在此创建或轮换期间无法访问 AKV 或支持服务(如 Microsoft Entra ID),则无法执行 VLF 的创建或轮换。 此外,它还会导致数据库辅助功能问题。

当事务日志文件较小,或者自动增长 (自动增长) 事务日志增量较小时,可以频繁创建或轮换 VLF,而不是大到足以提前满足工作负荷事务的需求。 有关详细信息,请参阅 管理事务日志文件的大小

可以使用 sys.dm_db_log_info 监视 VLF 的大小和创建频率。

解决方案

此问题在以下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 版本安装最新版本:

状态

Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。

References