閱讀英文

共用方式為


當您在 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 個資料庫的快照集備份。