SQL SERVER VSS ライターが原因で Windows Server のバックアップが失敗する可能性がある

この記事では、Microsoft Windows Server のバックアップが失敗し、"ボリューム シャドウ コピー サービス操作が失敗しました" というエラーが発生する問題の解決策について説明します。

適用対象: Windows Server 2012 R2、Windows Server 2016
元の KB 番号: 2615182

現象

サーバーのバックアップが失敗し、次のエラー メッセージが表示される場合があります。

ボリューム シャドウ コピー サービス操作に失敗しました。 詳細なエラー: ボリューム シャドウ コピー操作がエラー 0x800423F4で失敗しました。 詳細については、イベント ログを表示します。

次のエラー メッセージがアプリケーション イベント ログに記録されます。

Log Name: Application  
Source: Microsoft-Windows-Backup  
Event ID: 521  
Level: Error  
Description:  
Backup started at '*\<DateTime>*' failed as Volume Shadow copy operation failed for backup volumes with following error code '2155348129'. Please rerun backup once issue is resolved.

アプリケーション イベント ログをさらに調べると、ソース SQLWriter と SQLVDI から多数のエラーが発生します。

エラーは次のようになります。

Log Name: Application
Source: SQLWRITER  
Event ID: 24583  
Level: Error  
Description:  
Sqllib error: OLEDB Error encountered calling ICommandText::Execute. hr = 0x80040e14. SQLSTATE: 42000, Native Error: 3013  
Error state: 1, Severity: 16  
Source: Microsoft SQL Server Native Client 10.0  
Error message: BACKUP DATABASE is terminating abnormally.  
SQLSTATE: 42000, Native Error: 3271  
Error state: 1, Severity: 16  
Source: Microsoft SQL Server Native Client 10.0  
Error message: A nonrecoverable I/O error occurred on file "  {DF1DD65F-F8AD-4946-A764-F62166C541E2}22:" 995(The I/O operation has been aborted because of either a thread exit or an application request.).  
Log Name: Application  
Source: SQLVDI  
Event ID: 1  
Level: Error  
Keywords: Classic  
User: N/A  
Computer: CONTOSOSERVER.contoso.local  
Description:  
SQLVDI: Loc=TriggerAbort. Desc=invoked. ErrorCode=(0). Process=3720. Thread=9404. Server. Instance=SBSMonitoring. VD=Global{DF1DD65F-F8AD-4946-A764-F62166C541E2}10_SQLVDIMemoryName_0.

原因

Windows Server バックアップがディスク ボリュームのバックアップを試みると、ボリュームのボリューム シャドウ コピー スナップショットが作成されます。 スナップショットが作成されると、ボリュームに関連付けられているボリューム シャドウ コピー サービス (VSS) ライターが呼び出されます。 VSS ライターのいずれかがエラーを検出すると、バックアップ ジョブ全体が失敗します。 この例では、SQL VSS ライターでエラーが発生し、バックアップ ジョブが失敗しています。

解決方法

このエラーは通常、SQL Serverインスタンスのいずれかに問題が発生した場合に発生します。 問題のトラブルシューティングを行うには、まず、どのインスタンスに問題SQL Serverするかを把握する必要があります。 通常、問題のあるSQL Server インスタンスには、最初に記録された SQLVDI エラーに名前が付けられます。

例:

Log Name: Application  
Source: SQLVDI  
Event ID: 1  
Level: Error  
Description:  
SQLVDI: Loc=SignalAbort. Desc=Client initiates abort. ErrorCode=(0). Process=4772. Thread=10300. Client. Instance= SBSMONITORING . VD=Global{3AB8F080-950C-4EF9-B637-0F37B2428F17}1_SQLVDIMemoryName_0.  

この例では、SBSMONITORING という名前のSQL Server インスタンスがスナップショットに失敗しています。

また、ソース SQLWRITER からのエラー メッセージが、最初の SQLVDI エラーと同時に発生する可能性もあります。 SQLWRITER エラー メッセージは、スナップショットに問題があるデータベース名を識別する可能性があります。

例:

Log Name: Application  
Source: SQLWRITER  
Event ID: 24583  
Description:  
Sqllib error: OLEDB Error encountered calling ICommandText::Execute. hr = 0x80040e14. SQLSTATE:  42000, Native Error: 3013  
Error state: 1, Severity: 16  
Source: Microsoft SQL Server Native Client 10.0  
Error message: BACKUP DATABASE is terminating abnormally.  
SQLSTATE: 42000, Native Error: 945  
Error state: 2, Severity: 14  
Source: Microsoft SQL Server Native Client 10.0  
Error message: Database 'SBSMonitoring' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.

この例では、 SBSMonitoring という名前のデータベースに問題があります。

問題が発生しているSQL Server インスタンスを特定したら、最初の手順は、そのSQL Server インスタンスが停止した状態でバックアップをテストすることです。 SBSMonitoring インスタンスの例では、サーバー上のSQL Server (SBSMonitoring) サービスを停止します。

その後、影響を受けるSQL Serverインスタンスが停止した状態でバックアップ ジョブを実行します。 バックアップが完了した場合は、実行されていないSQL Server インスタンスが原因でエラーが発生していることがわかります。 その後、SQL Serverエラー ログ ファイルとイベント ログを調べて、その特定のSQL Serverインスタンスの問題を判断できるかどうかを確認します。

イベント ログから問題のあるSQL Server インスタンスを特定できない場合は、常にサーバー上のすべてのSQL Server インスタンスを停止し、SQL を停止してバックアップを実行できます。 すべてのSQL Serverインスタンスが停止した場合、SQL VSS ライターは使用されません。

Small Business Server 2008 の既定のインストールでは、次のサービスを停止します。

  • SQL Server (SBSMonitoring)
  • Windows Internal Database

Small Business Server 2011 Standard の既定のインストールでは、次のサービスを停止します。

  • SQL Server (SharePoint)
  • SQL Server (SBSMonitoring)
  • Windows Internal Database