Симптоми
При големи обеми клиентски натоварвания, които използват Extensible Key Management (EKM), може да възникват периодични проблеми с достъпа до базите данни. Тези проблеми с достъпността се причиняват от честото създаване или завъртане на виртуален регистрационен файл (VLF), който изисква достъп до Azure Хранилище за ключове (AKV). Ако AKV или поддържащи услуги, като например Microsoft Entra ID, не са достъпни по време на това създаване или завъртане, не можете да извършите създаването или завъртането на VLF. Освен това води до проблеми с достъпността на базата данни.
VLF могат да се създават или завъртат често, когато регистрационните файлове на транзакциите са малки или когато автоматичното нарастване (autogrow) на регистрационния файл на транзакциите е малко, вместо да е достатъчно голямо, за да изпреварва нуждите на транзакциите на работното натоварване. За повече информация вижте "Управление на размера на регистрационния файл на транзакциите".
Можете да наблюдавате размера и честотата на създаване на VLF файлове с помощта на sys.dm_db_log_info.
Решение
Този проблем е решен в следните кумулативни актуализации за SQL Server:
Тази корекция въвежда флаг за проследяване при стартиране (TF) 15025. Можете да използвате TF 15025, за да забраните достъпа до AKV, който е необходим за новосъздаден VLF, което позволява обеми от работа на клиенти да продължат без прекъсване. След като този флаг за проследяване е активиран, SQL Server, който използва EKM за криптиране и генериране на ключове, не се свързва с AKV по време на създаването или завъртането на VLF.
За да проверите дали ключът в 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:
- Най-нова кумулативна актуализация за SQL Server 2022
- Последна кумулативна актуализация за SQL Server 2019
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.
Справки
- Разширено управление на ключове (EKM)
- Управление на размера на регистрационния файл на транзакциите
- sys.dm_db_log_info (Transact-SQL)
- sys.dm_database_encryption_keys (Transact-SQL)
- ALTER DATABASE SET OPTIONS (Transact-SQL)
- Научете повече за терминологията , която Microsoft използва за описване на актуализациите на софтуера