ИСПРАВЛЕНИЕ. Проблемы с доступностью базы данных при рабочих нагрузках клиентов с большим объемом, которые используют EKM для шифрования и создания ключей
Симптомы
Для рабочих нагрузок клиентов с большим объемом, использующих расширенное управление ключами (EKM), могут возникать периодические проблемы со специальными возможностями базы данных. Эти проблемы со специальными возможностями вызваны частым созданием или сменой виртуального файла журнала (VLF), которому требуется доступ к Azure Key Vault (AKV). Если akv или вспомогательные службы, такие как Microsoft Entra ID, недоступны во время создания или смены, вы не сможете выполнить создание или смену VLF. Кроме того, это приводит к проблемам со специальными возможностями базы данных.
VLF можно часто создавать или менять, когда файлы журнала транзакций невелики или автоматически увеличивается (автоматически увеличивается) для журнала транзакций, а не достаточно большой, чтобы опережать потребности транзакций рабочей нагрузки. Дополнительные сведения см. в разделе Управление размером файла журнала транзакций.
Вы можете отслеживать размер и частоту создания VLF с помощью sys.dm_db_log_info.
Решение
Эта проблема устранена в следующих накопительных обновлениях для SQL Server:
- Накопительный пакет обновления 1 для SQL Server 2022 г.
- Накопительный пакет обновления 19 для SQL Server 2019 г.
Это исправление вводит флаг трассировки запуска (TF) 15025. Вы можете использовать TF 15025, чтобы отключить доступ AKV, необходимый для только что созданного VLF, что позволяет работать с большим объемом рабочих нагрузок клиентов без прерывания. После включения этого флага трассировки SQL Server, использующий EKM для шифрования и создания ключа, не обращается к AKV во время создания или смены VLF.
Чтобы проверка, если ключ в AKV по-прежнему используется или его необходимо отключить, необходимо выполнить одну из следующих операций с базой данных:
- Создайте резервную копию (любой тип резервной копии) базы данных или журнала транзакций.
- Выполните команду
DBCC CHECKDB
в зашифрованной базе данных. - Задайте для зашифрованной базы данных состояние ,
OFFLINE
а затем — вONLINE
состояние . - Create snapshot зашифрованной базы данных.
В любой из перечисленных операций SQL Server свяжется с AKV и проверка доступ к ключу во время этой операции, если ключ существует в AKV.
Даже если включить TF 15025, эти операции по-прежнему будут достигать AKV.
Чтобы проверка состояние ключа в базе данных, можно выполнить следующую инструкцию Transact-SQL (T-SQL):
SELECT * FROM sys.dm_database_encryption_keys
Сведения о накопительных обновлениях для SQL Server
Каждое новое накопительное обновление для SQL Server содержит все исправления и исправления безопасности, которые были в предыдущей сборке. Рекомендуется установить последнюю сборку для своей версии SQL Server:
- Последнее накопительное обновление для SQL Server 2022 г.
- Последнее накопительное обновление для SQL Server 2019 г.
Состояние
Данное поведение является подтвержденной ошибкой продуктов Майкрософт, перечисленных в разделе «Применимо к».
Ссылки
- Расширенное управление ключами (EKM)
- Управление размером файла журнала транзакций
- sys.dm_db_log_info (Transact-SQL)
- sys.dm_database_encryption_keys (Transact-SQL)
- Параметры ALTER DATABASE SET (Transact-SQL)
- Сведения о терминологии , которую корпорация Майкрософт использует для описания обновлений программного обеспечения