SQL Server で、複数のデータベースのスナップショットバックアップを同時に作成すると、エラーメッセージ "エラーが発生しました" というエラーメッセージが表示される


現象


次のような状況を想定します。 Microsoft SQL Server では、一度に多くのデータベースのスナップショットバックアップを作成します。 これを行うには、ボリュームシャドウコピーサービス (VSS) を使用するか、仮想バックアップデバイスインターフェイス (VDI) を使用します。 このシナリオでは、スナップショットバックアップ操作は失敗します。 また、VSS を使用してスナップショットバックアップを作成すると、次のエラーメッセージが表示されます。
エラー: 選択したライター ' Microsoft Writer (サービスの状態) ' は失敗した状態です。 -状態: 8 (VSS_WS_FAILED_AT_PREPARE_SNAPSHOT)-ライターエラーコード: 0x800423f4 (<不明なエラーコード>)-ライター ID: {Writerid}-インスタンス id: {InstanceID}
VDI を使用してスナップショットバックアップを作成すると、次のいずれかのエラーメッセージが表示されます。
エラー メッセージ 1
Publisher[ODBC SQL Server Driver][SQL Server]UMS スケジューラを作成するためのリソースが不足しています。Msg 3267、SevLevel 16、State 1、SQLState 42000
エラー メッセージ 2
Publisher[ODBC SQL Server Driver][SQL Server]ワーカースレッドを作成できませんでした。Msg 3013、SevLevel 16、State 1、SQLState 42000
エラー メッセージ 3
SQL Server エラーログに次のメッセージが記録される場合があります。
2008-12-06 02:26: 24.90 spid420 SubprocessMgr:: EnqueueSubprocess: ' Max worker threads の制限に達しました
この問題が発生したときにバックアップしようとしているデータベースの数はさまざまです。 データベースの数は、次の条件によって異なります。
  • SQL Server の構成
  • SQL Server のその他のアクティビティ

原因


SQL Server では、各データベースのスナップショットバックアップでは、Sqlservr.exe プロセスで5つのスレッドが使用されます。 さらに、その他のアクティビティでも、Sqlservr.exe プロセスのスレッドが使用されることがあります。 SQL Server の構成によっては、複数のデータベースのスナップショットバックアップを同時に作成すると、利用可能なスレッドが使用されることがあります。

回避策


この問題を回避するには、同時に少数のデータベースのスナップショットバックアップを作成します。64ビット版の SQL Server を実行している場合は、[ワーカースレッドの最大数] の構成オプションを増やすことを検討してください。 32ビット版の SQL Server でこの設定を変更することはお勧めしません。

状態


マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

詳細情報


同時に、使用するデータベース数が35より少ないスナップショットバックアップを作成することをお勧めします。