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 (<不明なエラー コード>)
- ライター ID: { WriterID }
- インスタンス ID: { InstanceID }
VDI を使用してスナップショット バックアップを作成すると、次のいずれかのエラー メッセージが表示されます。
エラー メッセージ 1
[Microsoft][ODBC SQL Server Driver][SQL Server] UMS スケジューラを作成するためのリソースが不足しています。
メッセージ 3267、SevLevel 16、状態 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 プロセスで 5 つのスレッドが使用されます。 さらに、他のアクティビティでは、 Sqlservr.exe プロセスでスレッドを使用することもできます。 SQL Serverの構成によっては、多数のデータベースのスナップショットバックアップを同時に作成すると、使用可能なスレッドが使い切れる場合があります。
回避策
この問題を回避するには、少ないデータベースのスナップショットバックアップを同時に作成します。
64 ビット バージョンのSQL Serverを実行している場合は、[ワーカー スレッドの最大数] 構成オプションを増やすことを検討できます。 32 ビット バージョンのSQL Serverでこの設定を変更することはお勧めしません。
詳細
同時に 35 個未満のデータベースのスナップショットバックアップを作成することをお勧めします。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示