為現有 AlwaysOn 數據庫啟用 TDE
無論是否啟用 TDE,我都需要對 AlwaysOn 進行一些基準測試。我看到的所有說明都包括將加密數據庫添加到可用性組,但我沒有看到為已經在 AG 中的數據庫啟用加密。
我可以將伺服器證書恢復到所有節點,然後從主節點啟用 TDE 嗎?我希望我不需要從 AG 中刪除數據庫,對其進行加密,然後重新初始化所有節點,因為數據庫大約 100 GB。如果需要,我們可以這樣做,但它肯定會減慢我們的測試速度。
更新
我剛剛在一些實驗室虛擬機上試過這個。我能夠在主節點上創建一個證書,在所有輔助節點上恢復它,然後使用這個證書在主節點上創建一個數據庫加密密鑰。之後我所要做的就是
ALTER DATABASE AdventureWorks SET ENCRYPTION ON
在主伺服器上,一兩分鐘後,sys.dm_database_encryption_keys 在所有節點上顯示 encryption_state = 3。所以,後續問題:有什麼理由認為我不應該使用這個程序嗎?SQL Server 似乎對結果很滿意,但我還沒有看到任何地方討論過這種方法。在處理加密和高可用性問題時,我不想讓事情碰運氣。
在沒有任何其他輸入的情況下,這就是我能夠推斷出的。短篇小說:這似乎工作正常。
據我所知,為數據庫啟用 TDE 是一個記錄操作,但不會記錄實際的數據加密(否則事務日誌會顯著增長,但事實並非如此)。我假設有類似差異變化圖之類的東西,或者頁面標題中的一個標誌來指示頁面是否被加密,並且儲存引擎只是瀏覽所有內容,直到它完全加密。
當我在主數據庫上啟用 TDE 時,輔助數據庫最終也被加密(我已經用十六進制編輯器驗證了這一點)。在加密過程中,視圖 sys.dm_database_encryption_keys 指示所有輔助伺服器的 percent_complete 為 0,並且該值永遠不會增加。主伺服器正常更新此列。所有副本都傾向於按照自己的節奏完成加密,此時加密狀態更改為 3。似乎一旦完成,一切都會正常工作。