訓練
當您在 SQL Server 中同時建立許多資料庫的快照集備份時發生錯誤
本文可協助您解決在 SQL Server 中同時建立許多資料庫的快照集備份時的問題(ERROR Selected writer 'Microsoft Writer (Service State)' is in failed state
訊息)。
原始產品版本:SQL Server
原始 KB 編號: 943471
在 Microsoft SQL Server 中,您會同時建立許多資料庫的快照集備份。 若要這樣做,您可以使用磁碟區陰影複製服務 (VSS),或使用虛擬備份裝置介面 (VDI)。 在此案例中,快照集備份作業失敗。 此外,如果您使用 VSS 來建立快照集備份,您會收到下列錯誤訊息:
錯誤:選取的寫入器 「Microsoft寫入器」處於失敗狀態!
- 狀態:8(VSS_WS_FAILED_AT_PREPARE_SNAPSHOT)
- 寫入器失敗碼:0x800423f4 (<未知的錯誤碼>)
- 寫入器識別碼: { WriterID }
- 實例標識符:{ InstanceID }
如果您使用 VDI 來建立快照集備份,您會收到下列其中一個錯誤訊息:
錯誤訊息 1
[Microsoft][ODBC SQL Server Driver][SQL Server]資源不足,無法建立UMS排程器。
Msg 3267、SevLevel 16、State 1、SQLState 42000錯誤訊息 2
[Microsoft][ODBC SQL Server Driver][SQL Server]無法建立背景工作線程。
Msg 3013、SevLevel 16、State 1、SQLState 42000錯誤訊息 3
SQL Server 錯誤記錄檔中可能會記錄下列訊息:
<Datetime> spid420 SubprocessMgr::EnqueueSubprocess: 達到 'Max worker threads' 的限制
發生此問題時,您嘗試備份的資料庫數目會有所不同。 資料庫數目取決於下列條件:
- SQL Server 的組態。
- SQL Server 中的其他活動。
在 SQL Server 中,每個資料庫的快照集備份會在Sqlservr.exe進程中使用五個線程。 此外,其他活動也可能在Sqlservr.exe進程中使用線程。 根據 SQL Server 的組態,如果您同時建立許多資料庫的快照集備份,可能會用到可用的線程。
若要解決此問題,請同時建立較少資料庫的快照集備份。
如果您正在執行 64 位版本的 SQL Server,您可以考慮增加 [最大背景工作線程] 組態選項。 不建議在32位版本的SQL Server 上變更此設定。
建議您同時建立少於 35 個資料庫的快照集備份。
其他資源
文件
-
MSSQLSERVER_18210 - SQL Server
MSSQLSERVER_18210
-
了解如何使用背景工作執行緒上限選項來設定可供 SQL Server 處理特定要求的背景工作執行緒數目。
-
MSSQLSERVER_3271