徵狀
請試想下列案例:
-
在運行 SQL Server 2008 或 SQL Server 2008 R2 的伺服器上,您會在主資料庫中建立伺服器憑證。
-
您可以在使用伺服器憑證保護資料庫加密金鑰(DEK)的使用者資料庫上啟用透明的資料加密。
-
您刪除伺服器憑證。
-
您會針對資料庫開始新的交易。
在這種情況下,新的事務就不會完成。 具體來說,事務會無限期地等待 WRITELOG 等待類型。 此外,資料庫可能會標示為「置疑」。筆記
-
即使您從備份還原憑證,此問題仍會持續發生。
-
發生這個問題時,SQL Server 不會回應停止要求。 您只需要執行 Shutdown 命令及 NOWAIT 選項,即可關閉 SQL Server。
-
在某些情況下,可能會在 SQL Server 錯誤記錄中記錄類似下列的錯誤:
日期時間 spid5s 錯誤:33111、嚴重性:16、State:3。日期時間 Spid5s 找不到指紋為「0xF9384BBA39E82B87D07A8D9AEBD58DDF55B715A3」的伺服器憑證。日期時間 spid175 錯誤:15507、嚴重性:16、State:1。日期時間 spid175 此操作所需的金鑰會損毀。日期時間 spid175 錯誤:3314、嚴重性:21、State:4。[日期時間spid175] 在資料庫 "database name" 撤銷記錄的作業時,記錄記錄識別碼(10637:3496:70)發生錯誤。 通常,特定的故障會記錄為 Windows 事件記錄服務中的錯誤。 從備份還原資料庫或檔案,或修復資料庫。日期時間 spid18s 錯誤:9001、嚴重性:21、State:5。日期時間 spid18s 資料庫「資料庫名稱」的記錄無法使用。 檢查事件記錄檔以取得相關的錯誤訊息。 解決任何錯誤,然後重新開機資料庫。
解決方案
SQL Server 2008 的 Service pack 資訊
若要解決此問題,請取得最新的 SQL Server 2008 service pack。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
968382 如何取得最新的 SQL Server service pack 2008
SQL Server 2008 R2 的 Service pack 資訊
若要解決此問題,請取得最新的 SQL Server 2008 R2 service pack。如需詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2527041 如何取得最新的 SQL Server 2008 R2 service pack套用修正程式後,如果使用憑證來保護 DEK,則不允許使用者刪除伺服器憑證。
狀態
Microsoft 已確認這是「適用于」區段中所列之 Microsoft 產品中的問題。這個問題最初是在 sql server 2008 r2 Service Pack 1 中針對 SQL Server 2008 R2 進行修正。這個問題首先是在 SQL Server 2008 Service Pack 3 中修正。
其他相關資訊
此修正程式也可避免在下列情況下發生錯誤33111:
-
資料庫已加密。
-
解密相同的資料庫。
-
加密資料庫金鑰的憑證會遭到刪除,但資料庫金鑰不會被刪除。
在這種情況下,當執行 SQL Server 的電腦重新開機時,當資料庫復原時會傳回下列錯誤:
錯誤:33111,嚴重性:16,狀態:3Cannot 找出 thumbprint'0xA89FE581BD3D371CD3E41D48C9978163AB7055F7 的伺服器憑證
在將 Service Pack 3 (SP3)套用至 SQL Server 2008 之後,當您在 [資料庫金鑰投遞] 中進行憑證刪除時,會觸發下列錯誤:
Msg 3716、Level 16、State 15、Line 2The 憑證 ' MyServerCert ' 無法刪除,因為它已系結至一個或多個資料庫加密金鑰。
若要修正此問題,請遵循下列步驟來解密資料庫:
-
從 [備份] 重新建立證書。
-
讓資料庫在線上。
-
在加密資料庫中執行 [刪除資料庫加密金鑰] 命令。
-
如果這是您在此案例中要執行的動作,請刪除證書。
如需透明資料加密(TDE)的詳細資訊,請移至下列 MSDN 網站:
瞭解透明資料加密(TDE)如需有關軟體更新術語的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
824684 描述 Microsoft 軟體更新所使用的標準術語說明