徵狀
假設您有一個在 Microsoft SQL Server 2008 或 SQL Server 2008 R2 中啟用透明資料加密(TDE)的資料庫,針對資料庫執行的任何寫入操作都會在 WRITELOG 或 LOGBUFFER 上無限期等待。 當資料庫處於完整的復原模式,且定期進行排程記錄備份時,SQL Server 錯誤記錄中的第一個和最後一個記錄序號(LSN)數在問題發生之後,發生的記錄備份就會相同。 但仍建議您確認此時間範圍內是否預期有任何使用者活動。 LSN 編號可能不會變更,因為沒有使用者活動所造成的寫操作。 相關的 SQL Server 錯誤記錄專案如下所示:
已備份記錄。 資料庫: <DataBaseName>,建立日期(時間): <日期><時間>,第一個 lsn:76383:11154:1,最後一個 lsn: 76383:11154:1 ... .。。 這只是一則資訊訊息。 不需要使用者動作。已備份記錄。 資料庫: <DataBaseName>,建立日期(時間): <日期><時間>,第一個 lsn:76383:11154:1,最後一個 lsn: 76383:11154:1 ... .。。 這只是一則資訊訊息。 不需要使用者動作。
這個問題並非在完整復原模式中針對資料庫,還有其他復原模式的資料庫也容易遇到相同的問題。 此外,您也可能會在系統資料表 sysprocesses中看到 [回滾] 狀態的 SPID。
原因
這個問題是由 TDE 周圍的一些基礎例外狀況所造成。
解決方案
此問題最初是在 SQL Server 的後續累積更新中修正。 在您套用此熱修復程式後,當您遇到問題時,SQL Server 會將資料庫設為離線(而不是無限期 WRITELOG 或 LOGBUFFER),資料庫可以在不重新開機 SQL Server 服務的情況下重新連線。 在某些情況下,資料庫將由 SQL Server 自動重新連線,而不需要人工干預。 相關資訊將會記錄在 SQL Server 錯誤記錄中。此熱修復程式將無法完全解決問題。 不過,當問題再次發生時,可能會在 SQL Server 錯誤記錄中記錄其他診斷資訊(根據類型和錯誤嚴重性)。 您必須識別實際例外狀況,並使用您在套用修正程式後可能會取得的其他診斷資訊說明來修正它。
針對 SQL Server 2008 R2 SP2 累積更新13 /en-us/help/2967540
SQL Server 2008 SP3 的累積更新17 /en-us/help/2958696
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。