[INF] SQL Server 2000 Service Pack 3 をインストールすると、すべてのフルテキスト カタログが再構築される

この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
概要

カタログの再構築時に、CONTAINSTABLE 関数または FREETEXTTABLE 関数を使用するフルテキスト検索 (FTS) クエリの Rank 列で返される値が変化することがあります。この値は、元になるデータが変更されていない場合でも変化することがあります。このようなランクに一貫性がなくなる問題を解決するために、マイクロソフトではフルテキスト カタログの形式を変更しました。そのため、SQL Server 2000 Service Pack 3 (SP3) にアップグレードするときに、すべてのフルテキスト カタログを新しい形式にアップグレードする必要があります。
この資料では、フルテキスト検索に固有の SQL Server 2000 SP3 のセットアップについて説明します。また、SQL Server 2000 SP3 にアップグレードするときに発生する可能性があるフルテキスト検索のダウンタイムを最小限に抑えるための回避策についても説明します。

フルテキスト カタログの形式をアップグレードした後に、すべてのフルテキスト カタログを再構築する必要があります。フルテキスト カタログは、SQL Server 2000 SP3 のセットアップ完了後、MSSearch サービスを開始すると自動的に再構築されます。SQL Server 2000 SP3 セットアップの初期段階で、すべてのフルテキスト カタログを再構築する必要があることを示すメッセージが表示されます。SQL Server 2000 SP3 のセットアップを続行する場合は、[Microsoft Search をアップグレードし SQL Server 2000 SP3 を適用する (必須)] チェック ボックスをオンにする必要があります。

アップグレードするインスタンスに関連付けられたカタログだけでなく、同一コンピュータ上のすべての SQL Server 2000 インスタンスのすべてのカタログが再構築されます。再構築操作には時間がかかり、大量のリソースが消費されることがあります。そのため、再構築が完了するまでフルテキスト カタログは利用できなくなります。
原因
MSSearch のカタログ形式の問題により、CONTAINSTABLE 関数や FREETEXT 関数を使用するクエリから返されるランク値と、以前のバージョンの SQL Server でカタログを再作成したときに返されるランク値に一貫性がなくなります。
解決方法
この問題を解決するには、MSSearch のカタログ形式をアップグレードする必要があります。MSSearch のカタログ形式をアップグレードした後、「概要」に記載されている現象が発生することがあります。
回避策
この問題を回避するには、次のいずれかの方法を使用します。

  • 並列アップグレード
  • 手動のアップグレード
  • 既定のアップグレード
各アップグレードの詳細について、以下で説明します。

並列アップグレード


: フルテキスト検索カタログは、再構築されるまで使用できません。フルテキスト カタログのサイズと利用可能なシステム リソースによっては、並列アップグレードを実行する必要がない場合もあります。アップグレードするすべてのフルテキスト カタログの合計行数が 100,000 行を超える場合、利用可能なハードウェア リソースとシステム リソースによっては、再構築処理に 1 時間以上かかることがあります。アップグレードするフルテキスト カタログの合計行数が 100,000 行を超える場合は、並列アップグレードをお勧めします。また、この回避策が完全に機能するようにするには、コンピュータ上のすべての SQL Server 2000 インスタンスのすべてのカタログをアップグレードする必要があります。

再構築処理中にフルテキスト検索が長時間利用できなくなることを回避し、SQL Server 2000 SP3 へのアップグレード後のリソース使用量を最小限に抑えるには、次の手順に従って並列アップグレードを実行する必要があります。
  1. すべての SQL Server データベースをバックアップします。SQL Server では、これらのバックアップを使用して、既存の実稼動コンピュータのイメージを開発用コンピュータに作成します。実稼動コンピュータのレプリカを作成して開発用コンピュータとし、管理する方法の詳細については、SQL Server Books Online の「スタンバイ サーバーの使用」を参照してください。
  2. 実稼動サーバーで変更の監視が有効になっている場合は、バックグラウンドでのインデックス更新とすべての定期更新を無効にします。定期的な全生成または増分作成については、そのままの設定にしておくことができます。
  3. 手順 1. で作成したバックアップを開発用コンピュータに復元します。データベース ID が同じであることを確認してください。開発用コンピュータから実稼動コンピュータにフルテキスト カタログを正しくコピーするには、データベース ID が同じである必要があります (手順 6. 参照)。
  4. 開発用コンピュータにバックアップを復元した後、フルテキスト カタログへのポインタがデータベースに存在するようになります。ただし、ポインタが指し示しているフルテキスト カタログは存在しません。フルテキスト カタログを作成し、データを設定するために、フルテキスト カタログごとに次のコードを実行します。
    sp_fulltext_catalog 'fulltext_catalog_name', 'rebuild'gosp_fulltext_catalog 'fulltext_catalog_name', 'start_full'go
  5. 開発用サーバーに SQL Server 2000 SP3 を適用して、フルテキスト カタログ データをアップグレードします。
  6. 開発用サーバーですべてのフルテキスト カタログの構築処理が完了したら、すべてのフルテキスト カタログを実稼動サーバー上の安全な場所にコピーします。この時点では、既存のフルテキスト カタログ データを上書きしないでください。
  7. コピーが完了したら、SQL Server 2000 SP3 を実稼動サーバーに適用します。
  8. SQL Server 2000 SP3 へのアップグレードが完了したら、MSSearch サービスを停止します。

    : カタログの自動再構築が開始された場合は、カタログごとに次のコードを実行して、再構築処理を停止します。
    sp_fulltext_catalog 'fulltext_catalog_name', 'stop'
    処理が完了したら、MSSearch サービスを停止します。
  9. 実稼動サーバーで、既存のカタログを開発用サーバーからコピーしたカタログと置き換えます。
  10. MSSearch サービスを開始します。
  11. 実稼動サーバーで変更の監視が有効になっている場合、可能であれば、クエリ アナライザで次のコマンドを実行して、フルテキストが有効になっているすべてのテーブルで変更の監視による更新を手動で実行します。
    sp_fulltext_table '%tablename%', 'update_index'
    フルテキスト カタログを再構築する必要はありません。また、変更の監視が有効になっていて、手順 2. でバックグラウンドでのインデックス更新または定期更新を無効にした場合は、それらの設定を再び有効にします。

手動のアップグレード

SQL Server 2000 SP3 へのアップグレード直後にリソース使用量が増大することを回避するには、次の手順に従って手動でアップグレードを実行します。

: フルテキスト検索カタログは、再構築処理が完了するまで使用できません。手動のアップグレードでは、SQL Server 2000 SP3 セットアップによるインストールが完了した直後のリソース使用量が最小限に抑えられます。ただし、並列アップグレードに比べて、フルテキスト カタログを使用できない時間が長くなることがあります。

  1. 実稼動サーバーで SQL Server 2000 SP3 にアップグレードする前に、次のコードを実行し、出力を記録しておきます。
    exec sp_help_fulltext_catalogsexec sp_help_fulltext_columns
    フルテキスト カタログを再作成するときに、これら 2 つのシステム ストアド プロシージャから提供される情報が役に立ちます。
  2. sp_fulltext_table ストアド プロシージャと sp_fulltext_catalog ストアド プロシージャを使用して、すべてのフルテキスト カタログを削除します。フルテキスト カタログを削除する前に、フルテキスト インデックスが作成されているテーブルを削除する必要があります。
  3. SQL Server データをバックアップします。
  4. SQL Server 2000 SP3 を適用します。セットアップ処理中、SQL Server 2000 SP3 へのアップグレード後に、すべてのフルテキスト カタログを再構築することを通知する警告メッセージが表示されます。フルテキスト カタログはすべて削除されているので、この警告メッセージは無視してかまいません。
  5. 必要な場合は、sp_fulltext_catalog ストアド プロシージャを使用してすべてのフルテキスト カタログを再作成します。
  6. 前のフルテキスト インデックスが作成されていたテーブルと列を元のフルテキスト カタログにすべて追加してから、すべてのフルテキスト カタログで全生成を開始します。

既定のアップグレード

すべてのフルテキスト カタログの合計サイズが比較的小さく (多くの場合 100,000 行未満)、SQL Server 2000 SP3 のセットアップ処理後に利用可能なシステム リソースが十分ある場合、並列アップグレードまたは手動のアップグレードを実行する必要がない場合があります。このような場合は、再構築処理中のダウンタイム時間が最小限に抑えられ、リソースの使用量の増加も短時間で済むと考えられます。

どの方法を使用する場合でも、SQL Server 2000 SP3 にアップグレードする前に、実稼動サーバー以外のサーバーでアップグレード処理のテストを行う必要があります。移行を正常に行うために、すべての SQL Server データとフルテキスト カタログ データをバックアップします。
詳細

以下に、発生する問題の一例を示します。

サーバーに SQL Server 2000 Service Pack 2 (SP2) の 2 つのインスタンスがあり、各インスタンスには、4 つのフルテキスト カタログがあるとします。この場合、一方のインスタンスに SQL Server 2000 SP3 をインストールすると、両方のインスタンスのカタログがアップグレードされます。SQL Server 2000 SP3 よりも前のインスタンスのカタログがアップグレードされますが、アップグレードされたカタログは引き続き機能します。

この問題は、コンピュータにインストールされている SQL Server 2000 のインスタンスを初めて SQL Server 2000 SP3 にアップグレードするときにのみ発生します。同じコンピュータで再度 SQL Server 2000 SP3 へのアップグレードを行うときは、この問題は発生しません。

SQL Server 2000 SP3 のセットアップが正常に完了した後、MSSearch サービスを開始するときにのみ、CPU と I/O の使用率が若干高い状態が続きます。すべてのフルテキスト カタログの再構築と再作成が実行中であるため、使用率が若干高くなります。この間、SQL Server では、フルテキスト カタログに対してクエリを実行できません。クエリが正常に完了したように見えても、全生成の実行中に返される結果は正確でないことがあります。使用率が高い状態や正常なクエリ結果を得られない状態は数分間のみの場合もありますが、数時間続くこともあります。また、アプリケーション ログにエラー メッセージが記録されることがあります。以下に例を示します。
  • SQL Server 2000 SP3 のセットアップ完了後、MSSearch サービスを開始すると、次のようなメッセージが記録されます。
    種類 : 情報ソース : Microsoft Search分類 : Search Serviceイベント ID : 1003日付 :		2002/7/24時刻 :		17:26:51ユーザー :		N/Aコンピュータ :	FTS8説明 :Search サービスが開始しました。
  • MSSearch で、古い形式の SQL Server フルテキスト カタログをマウントしようとし、カタログが壊れていることが報告されると、MSSearch の開始時にマウントされるフルテキスト カタログごとに、次のようなエラー メッセージが記録されます。
    種類 : 情報ソース :	MssCi分類 : なしイベント ID : 4138日付 :		2002/7/24時刻 :		17:26:51ユーザー :		N/Aコンピュータ :	FTS8説明 :カタログ e:\ft\SQL0000800005\Build\Indexer\NlFiles のコンポーネント CI-RcovStorageObj1 に壊れたコンテンツ インデックスが検出されました。スタック トレースは 0x01045027  0x0104BE13  0x010469E0  0x0104D0CD  0x01048477  0x013BCE70  0x013B9D9F  0x013BA645  0x009F4251  0x009F450D  0x0138CE4C  0x0138E1D0  0x00A32783  0x00A2247A  0x00A99965  0x00AA5BDC  0x77E8758A です。				
  • MSSearch により、壊れていることが報告されたカタログのバージョンが正しくないことを示す別のエラー メッセージが記録されます。このエラー メッセージは、カタログのアップグレードおよび再構築をまだ実行していないことが原因で記録されます。MSSearch の開始時にマウントされるカタログごとに、次のようなメッセージが 1 つ以上記録されます。
    種類 : エラーソース : Microsoft Search分類 : Indexerイベント ID : 7039日付 :		2002/7/24時刻 :		17:26:51ユーザー :		N/Aコンピュータ :	FTS8説明 :プロジェクト <SQLServer SQL0000800005> でコンテンツ インデックスを読み込むことができません。エラー: c0041821 - ディスク上のコンテンツ インデックス データは異なるバージョンのものです。 
  • MSSearch により、次のエラー メッセージが記録されます。このエラー メッセージは、カタログの再設定中 (および新しいカタログ形式にアップグレード中) であることを示します。再設定または再構築が完了するのにかかる時間は、インデックスを作成する必要があるデータの量や利用可能なハードウェア リソースの量によって異なり、数分で終わることもあれば、数時間かかることがあります。再構築処理中は、フルテキスト カタログを使用できません。

    MSSearch の開始時にマウントされるカタログごとに、次のようなエラー メッセージが 1 つ以上記録されます。
    種類 : 情報ソース : Microsoft Search分類 : Gathererイベント ID : 3041日付 :		2002/7/24時刻 :		17:26:51ユーザー :		N/Aコンピュータ :	FTS8説明 :プロジェクト <SQLServer SQL0000800005> をリセットしています。

    : SQL Server 2000 SP3 へのアップグレード中にフルテキスト検索の高可用性を維持するには、「回避策」を参照してください。
  • 再構築処理が完了したときに、正常に再構築されたカタログごとに次のようなメッセージが記録されます。
    種類 : 情報ソース : Microsoft Search分類 : Gathererイベント ID : 3018日付 :		2002/7/24時刻 :		17:26:53ユーザー :		N/Aコンピュータ :	FTS8説明 :プロジェクト <SQLServer SQL0000800005> のクロールが終了しました。0 個のドキュメントが正常に処理されました。0 個のドキュメントのフィルタ処理に失敗しました。0 個の URL に到達できないか、アクセスが拒否されました。
再構築処理中に何らかのエラーが発生した場合は、その影響を受けたフルテキスト カタログを削除し、再作成する必要がある場合があります。
プロパティ

文書番号:327217 - 最終更新日: 01/17/2015 05:56:25 - リビジョン: 5.2

  • Microsoft SQL Server 2000 Standard Edition
  • kbnosurvey kbarchive kbproductlink kbinfo KB327217
フィードバック