フルテキスト カタログのバックアップと復元
Microsoft SQL Server のこのバージョンでは、データベース ファイル データをバックアップおよび復元するのと同じ方法で、BACKUP および RESTORE ステートメントを使用して、フルテキスト カタログをバックアップおよび復元できます。
フルテキスト カタログをバックアップするには、BACKUP ステートメントを使用します。
BACKUP DATABASE database_name
TO backup_device
フルテキスト カタログはそれぞれ 1 つのファイルとして扱われ、バックアップ対象のデータベース ファイル セットに含まれます。バックアップの処理中に、フルテキスト カタログを削除したり、追加したりすることはできません。
通常、SQL Server は BACKUP 操作時に次のようなタスクを実行します。
- Microsoft Full-Text Engine for SQL Server (MSFTESQL) を一時的に停止して、フルテキスト カタログの保留中の変更をすべてディスクにフラッシュします。また、SQL Server はカタログへのすべての書き込み操作を停止し、バックアップの開始時にまだ処理されていなかった変更をすべて通知ログのキューに入れて、バックアップが完了したときにこれらの変更をフルテキスト カタログにコミットできるようにします。
ディスクでのカタログの状態は変わりません。この時点では、まだカタログにクエリを実行できます。 - すべてのテーブルおよびフルテキスト カタログ データ、変更の追跡ログ、メタデータをバックアップします。
- バックアップ プロセスの開始後に発生したすべてのデータをトランザクション ログにバックアップします。
- MSFTESQL サービスを再開し、さらにフルテキスト インデックスの作成を再開します。
データベース データのバックアップの詳細については、「SQL Server データベースの完全バックアップおよび差分バックアップの作成」を参照してください。Transact-SQL の BACKUP ステートメントの詳細については、「BACKUP (Transact-SQL)」を参照してください。
フルテキスト カタログのバックアップが完了すると、SQL Server は MSFTESQL サービスを開始して、通知ログに保存されていた更新をコミットし、通常の動作を再開します。
フルテキスト カタログとデータベース データの完全バックアップに加え、フルテキスト カタログは次の方法でもバックアップできます。
差分バックアップ
最後の完全バックアップ以降に行われたフルテキスト カタログの変更とデータベース データをバックアップするには、BACKUP コマンドに WITH DIFFERENTIAL を指定します。たとえば、次のステートメントは、フルテキスト カタログを含む、最後の完全バックアップ以降に行われたデータベース データの変更をバックアップします。
BACKUP DATABASE database_name TO backup_device WITH DIFFERENTIAL
前回の完全バックアップ以降に変更または追加されたファイルのみがバックアップされます。前回の完全バックアップ以降に削除されたファイルがある場合には、これらのファイルは復元プロセスの実行時に削除されます。バックアップ中に行われた変更は、通知ログに追加されてバックアップされ、すべてのファイルのバックアップが完了した後でコミットされます。
FAT32 ファイル システムのフルテキスト カタログでは差分バックアップはサポートされません。
フルテキスト カタログのファイル バックアップ
データベース データを除外してフルテキスト カタログのみをバックアップするには、BACKUP コマンドに FILE 句を指定します。たとえば、次のステートメントは、fulltext_cat というフルテキスト カタログのみをバックアップします。
BACKUP DATABASE database_name FILE = 'sysft_fulltext_cat' TO backup_device
メモ : フルテキスト カタログのファイル名は、フルテキスト カタログの名前の前に「sys」を付けたものです。 複数のフルテキスト カタログを格納するファイル グループのみをバックアップするには、BACKUP コマンドに FILEGROUP 句を指定します。
たとえば、次のステートメントは、fulltext_catFG というファイル グループのみをバックアップします。
BACKUP DATABASE database_name FILEGROUP = 'fulltext_catFG' TO backup_device
フルテキスト カタログの差分ファイル バックアップ
フルテキスト カタログの変更のみをバックアップするには、BACKUP コマンドに FILE 句と WITH DIFFERENTIAL を指定します。たとえば、次のステートメントは、fulltext_cat というフルテキスト カタログの前回の完全バックアップ以降に行われた変更をバックアップします。
BACKUP DATABASE database_name FILE = 'sysft_fulltext_cat' TO backup_device WITH DIFFERENTIAL
1 つのファイル グループに格納されたすべてのフルテキスト カタログの変更のみをバックアップするには、BACKUP コマンドに FILEGROUP 句と WITH DIFFERENTIAL を指定します。
たとえば、次のステートメントは、fulltext_catFG というファイル グループに格納されたすべてのフルテキスト カタログを対象に、前回の完全バックアップ以降に行われた変更をバックアップします。
BACKUP DATABASE database_name FILEGROUP = 'fulltext_catFG' TO backup_device WITH DIFFERENTIAL
フルテキスト カタログを復元するには、RESTORE コマンドを使用します。
RESTORE DATABASE database_name
FROM backup_device
このコマンドを発行すると、フルテキスト カタログ データを含むバックアップされたデータが、バックアップされた場所にディスクから復元されます。
Transact-SQL の RESTORE ステートメントの詳細については、「RESTORE (Transact-SQL)」を参照してください。
フルテキスト カタログとデータベース データの完全復元に加え、フルテキスト カタログは次の方法でも復元できます。
別の場所への復元
フルテキスト カタログのルート パスとは別の場所を指定するには、RESTORE コマンドに WITH MOVE を指定します。たとえば、次のステートメントは fulltext_cat というフルテキスト カタログを F:\FtCat ディレクトリに復元します。
RESTORE DATABASE AdventureWorks FROM backup_device WITH MOVE 'sysft_fulltext_cat' TO 'F:\FtCat'
WITH MOVE を指定すると、SQL Server は sys.fulltext_catalogs と sys.databases_files カタログ ビューのフルテキスト カタログのメタデータを、カタログのルート パスの新しい場所で更新します。フルテキスト カタログのメタデータは、他のデータベース ファイル データ ファイルやテーブル データ ファイルと同時に同じ方法で更新されます。
差分バックアップを復元する場合に加えて、フルテキスト カタログ ファイルまたはファイル グループのバックアップを別の場所に復元する場合も WITH MOVE を指定します。
メモ : フルテキスト カタログをルート ディレクトリに復元することはできません。
フルテキスト カタログの差分バックアップの復元
フルテキスト カタログとデータベース データの差分バックアップを復元するには、2 つの復元操作を行います。つまり、完全復元の後に差分復元を実行します。2 番目の復元では、完全バックアップと差分バックアップの間に変更されたデータベース エクステントのみが更新されます。RESTORE DATABASE AdventureWorks FROM backup_device WITH NORECOVERY RESTORE DATABASE AdventureWorks FROM backup_device2 FILE = 'sysft_fulltext_cat'
この場合、データベースはオフライン状態のままで、復元操作の間は Microsoft Search は停止します。2 番目の復元の完了後にオンラインで復旧します。
ファイルとファイル グループの差分バックアップも復元可能です。
フルテキスト カタログのファイル バックアップの復元
フルテキスト カタログのファイルとファイル グループのバックアップを復元するには、RESTORE コマンドに FILE 句または FILEGROUP 句を指定します。RESTORE DATABASE AdventureWorks FILE = 'sysft_fulltext_cat' FROM backup_device --or RESTORE DATABASE AdventureWorks FILEGROUP = 'fulltext_catFG' FROM backup_device
フルテキスト カタログ データを以前のバージョンのデータで復元しようとすると、SQL Server は警告を返します。
メモ : |
---|
トランザクション ログ バックアップを復元すると、フルテキスト インデックスの一貫性が損なわれることがあります。フルテキスト インデックスを一貫性のある状態に戻すには、完全クロールを実行する必要があります。 |