SQL Server TDE — как определить, что он завершен?

Есть ли способ узнать, полностью ли зашифрована база данных при использовании SQL 2008 TDE? то есть,

ИЗМЕНИТЬ БАЗУ ДАННЫХ mydb ВКЛЮЧИТЬ ШИФРОВАНИЕ

Единственный способ, который я могу придумать, - это продолжать пытаться отсоединить mydb. Он не отсоединится, пока все страницы не будут зашифрованы. Однако я хотел бы иметь более чистый способ, который не требует отсоединения?

Спасибо.


person Neil Weicher    schedule 16.12.2012    source источник


Ответы (2)


Похоже, эту информацию можно найти в sys.dm_database_encryption_keys.

encryption_state = 3 указывает, что база данных и журналы зашифрованы. encryption_state = 2 означает, что выполняется шифрование, и в этом случае вы можете также просмотреть столбец percent_complete.

person Martin Smith    schedule 16.12.2012
comment
Спасибо! Вот оно. Я также нашел эту статью для всех, кому нужна эта информация: msdn.microsoft. com/en-us/library/bb677274.aspx - person Neil Weicher; 18.12.2012
comment
Интересно: процент_завершения становится равным 100 задолго до того, как изменяется шифрование_состояния. Так завершается ли он, когда достигает 100 процентов, или он завершается, когда изменяется шифрование_состояния? - person Neil Weicher; 18.12.2012
comment
@Neilw - Не уверен, что он делает в этот промежуток времени. Я бы предположил, что когда шифрование_состояние изменится. - person Martin Smith; 19.12.2012
comment
Я попытался зашифровать базу данных размером 50 ГБ. Он был завершен на 100% примерно за 4 минуты. Но шифрование_состояние не менялось на 3 примерно до десяти минут. - person Neil Weicher; 20.12.2012

старый, но я просто положу его сюда. обратите внимание на процент_завершения

ВЫБЕРИТЕ DB_NAME(database_id) DbName, Encrypt_State EncryptState, процент_завершения, key_algorithm KeyAlgorithm, key_length KeyLength, encryptor_type EncryptType FROM sys.dm_database_encryption_keys;

person Vlad Kirov    schedule 15.09.2020