SQL ライター サービス

適用対象: SQL Server - Windows のみ

SQL ライター サービスは、ボリューム シャドウ コピー サービス フレームワークを通じて、SQL Server のバックアップと復元に関する追加機能を提供します。

SQL ライター サービスは、自動的にインストールされます。 SQL ライター サービスは、ボリューム シャドウ コピー サービス (VSS) アプリケーションがバックアップまたは復元を要求したときに動作している必要があります。 SQL ライター サービスを構成するには、 Microsoft Windows サービス アプレットを使用します。 SQL ライター サービスは、すべての Windows オペレーティング システムにインストールされます。

目的

データベース エンジンはデータ ファイルをロックし、排他アクセス権を取得します。 SQL ライター サービスが実行されていない場合、Windows で実行中のバックアップ プログラムはデータ ファイルにアクセスできないため、ネイティブの SQL Server バックアップを使ってバックアップを実行する必要があります。 SQL ライター サービスを使って、SQL Server が実行中で SQL Server のデータベース ファイルに対する排他ロックを維持している間に、Windows バックアップ プログラムがそれらのファイルをコピーできるようにします。

ボリューム シャドウ コピー サービス

VSS は、ボリューム バックアップを、アプリケーションがそれらのボリュームへの書き込みを続行している間に実行できるようにするためのフレームワークを実装する COM API のセットです。 VSS は、ディスクにデータを書き込むユーザー アプリケーション (ライター) と、そのデータをバックアップするアプリケーション (要求元) の間の調整に役立ちます。

VSS は、実行中のシステム (特にサーバー) で提供されているサービスのパフォーマンスや安定性を必要以上に低下させることなく、これらのシステム上で安定したバックアップ イメージをキャプチャしてコピーします。 VSS の詳細については、Windows ドキュメントを参照してください。

注意

VSS を使って、基本的な可用性グループをホストしている仮想マシンをバックアップする際に、その仮想マシンがセカンダリ状態にあるデータベースを現在ホストしている場合、SQL Server 2016 (13.x) SP2 CU2 および SQL Server 2017 (14.x) CU9 以降では、これらのデータベースは仮想マシンと共にバックアップ "されません"。 その理由は、基本的な可用性グループではセカンダリ レプリカ上にあるデータベースのバックアップがサポートされていないためです。 SQL Server のこれらのバージョン以前では、バックアップはエラーとなって失敗します。

Virtual Backup Device Interface (VDI)

SQL Server には、Virtual Backup Device Interface (VDI) と呼ばれる API が用意されています。これにより、独立系ソフトウェア ベンダーは SQL Server を独自のバックアップおよび復元製品に統合できます。 これらの API は、最高の信頼性とパフォーマンスを提供するほか、ホット バックアップ機能やスナップショット バックアップ機能など、 SQL Server のあらゆるバックアップおよび復元機能をサポートするように設計されています。 サードパーティ ベンダーのアプリケーションからスナップショット (VSS) バックアップが要求された場合、SQL ライター サービスでは、実際のバックアップを実行するために VDI API 関数が呼び出されます。 VDI API は VSS から独立しており、VSS API を採用していないソフトウェア ソリューションで頻繁に使用されます。

アクセス許可

SQL ライター サービスは、 ローカル システム アカウントで実行する必要があります。 SQL ライター サービスは、 に接続するために NT Service\SQLWriter SQL Serverログインを使用します。 NT Service\SQLWriter ログインを使用すると、SQL ライター プロセスは ログインなしと指定されたアカウントを通じた低い特権レベルで実行され、その結果、脆弱性を制限することになります。 SQL ライター サービスが無効になっている場合、VSS スナップショットに依存するすべてのユーティリティが中断する可能性があり、一貫性のないデータベースのバックアップを作成するリスクがあります。 例としては、たとえば System Center Data Protection Manager や、その他のサードパーティ製品などがあります。

SQL Server、それが実行されているシステム、およびホスト システム (仮想マシンの場合) で、Transact-SQL バックアップ以外が必要ない場合は、SQL ライター サービスを無効にし、ログインを削除しても安全です。 バックアップが直接的なスナップショット ベースであるかどうかにかかわりなく、SQL ライター サービスはシステム レベルとボリューム レベルどちらのバックアップからも呼び出される場合があります。 いくつかのシステム バックアップ製品は、開いているファイルやロックされているファイルがブロックされることを防止するために VSS を使用します。 SQL ライター サービスは、そのアクティビティの間に SQL Server インスタンスのすべての I/O を短時間にわたって停止するため、SQL Server の sysadmin 権限を必要とします。

特徴

SQL ライターは次の機能をサポートしています。

  • フルテキスト カタログなど、データベースの完全バックアップおよび復元
  • 差分バックアップおよび復元
  • 移動を伴う復元
  • データベースの名前変更
  • コピーのみのバックアップ
  • データベース スナップショットの自動復旧

SQL ライターは次の機能をサポートしていません。

  • ログのバックアップ
  • ファイルとファイル グループのバックアップ
  • ページ復元

サービスのアップグレードとメンテナンス

SQL ライター サービスは SQL Server データベース エンジンとは別のサービスです。これは、同じサーバー上にある SQL Server のさまざまなバージョンおよびインスタンス全体で共有されます。 SQL ライター サービス ファイルは SQL Server インストール パッケージの一部として提供され、付属する SQL Server エンジンと同じバージョン番号が付けられます。

SQL Server の新しいインスタンスをサーバーにインストールするか、既存のインスタンスをアップグレードするときに、インストールまたはアップグレードするインスタンスのバージョン番号が現在サーバー上にある SQL ライター サービスのバージョン番号よりも大きい場合、そのファイルはインストール パッケージに含まれるファイルに置き換えられます。

サービス パックまたは累積更新プログラムによって SQL ライター サービスが更新されており、より新しいバージョンの SQL Server をインストールしようとしている場合、インストールがより大きいメジャー バージョン番号を持っていれば、新しいバージョンの SQL ライター サービスを古いバージョンで置き換えることができます。 たとえば、SQL ライター サービスが SQL Server 2016 (13.x) SP2 CU2 で更新されているとします。 そのインスタンスを SQL Server 2017 (14.x) RTM にアップグレードする場合、更新された SQL ライター サービスは古いバージョンに置き換えられます。 この場合、新しいバージョンの SQL ライター サービスを取得するために、新しいインスタンスに最新の CU を適用する必要があります。

次のステップ