Microsoft は、Microsoft SQL Server 2008 の修正プログラムを1つのダウンロード可能なファイルとして配布します。 修正プログラムは累積的であるため、新しいリリースごとに、以前の SQL Server 2008 fix のリリースに含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。
現象
現象 1Microsoft SQL Server 2008 または Microsoft SQL Server 2008 R2 で大規模なフルテキストインデックスの作成を実行すると、フルテキストログファイルにエラーメッセージが表示されることがあります。 このエラーメッセージが記録される回数は、バッチサイズから1を引いた回数によって異なります。 たとえば、32ビットのコンピューターでは、バッチサイズは1000であるため、エラーは999回記録されます。 このエラーメッセージは、次のようになります。
エラー ' 0x8004cb04: メモリ内のワードリストが破損しています。 これは、フィルター、ワードブレーカー、またはその他のインデックス作成コンポーネントが、テーブルまたはインデックス付きビュー ' [smarsh] のフルテキストインデックス作成中に発生したためです。[dbo][ArchiveMsgs] ' (テーブルまたはインデックス付きビュー ID ' 160719625 '、データベース ID ' 7 ')、フルテキストキー値 ' 291484087 '。 インデックスの再作成が試みられます。
このエラーメッセージが表示されると、バッチサイズから1つを引いたときに、次のエラーメッセージが表示されることもあります。
<Date> <Time> spid28s エラー ' 0x80040e28 ' は、テーブルまたはインデックス付きビュー ' [smarsh] のフルテキストインデックスの作成中に発生しました。[dbo][ArchiveMsgs] ' (テーブルまたはインデックス付きビュー ID ' 160719625 '、データベース ID ' 7 ')、フルテキストキー値 ' 199598211 '。 インデックスの再作成が試みられます。
このエラーメッセージが表示されると、バッチサイズから1つを引いたときに、次のエラーメッセージが表示されることもあります。
<日付> <時刻> spid26s エラー ' 0x80043630: フィルターデーモン処理 MSFTEFD が不明な理由でタイムアウトしました。 この問題は、テーブルまたはインデックス付きビュー ' [smarsh] のフルテキストインデックスの作成中に発生した可能性があります。[dbo][ArchiveMsgs] ' (テーブルまたはインデックス付きビュー ID ' 160719625 '、データベース ID ' 7 ')、フルテキストキー値 ' 14304130 '。 インデックスの再作成が試みられます。
現象 2さらに、FDHOST プロセスが誤動作することがあります。 フルテキストクエリを実行しようとするか、フルテキストの作成を実行しようとすると、次のメッセージがクライアントに返されます。
Msg 30053、レベル16、状態102、行1単語の分割はフルテキストクエリ文字列に対してタイムアウトしました。 これは、ワードブレーカーでフルテキストクエリ文字列の処理に時間がかかるか、またはサーバー上で実行されている多数のクエリがある場合に発生する可能性があります。 もっと明るくするには、クエリをもう一度実行してみてください。
このカタログの SQLFT * ログを調べると、次のエラーメッセージが表示されます。
テーブルまたはインデックス付きビュー ' [DBNAME] のフルテキストインデックスの作成中にエラー ' 0x80004005 ' が発生しました。[dbo][TABLENAMe] ' (テーブルまたはインデックス付きビュー ID ' 1204001724 '、データベース ID ' 5 ')、フルテキストキー値 ' 4 '。 インデックスの再作成が試みられます。
SQL エラーログを調べると、次のエラーメッセージが表示されます。
エラー: 30089、レベル:17、状態: 1。フルテキストフィルターデーモンホスト (FDHost) プロセスが異常停止しました。 これは、ワードブレーカー、ステマー、または filter などの言語的コンポーネントが正しく設定されていないか、誤動作したために、フルテキストインデックス作成またはクエリ処理中に回復不可能なエラーが発生した場合に発生する可能性があります。 プロセスは自動的に再開されます。
原因
この問題は、Sqlservr.exe プロセスと Fdhost プロセス間の通信のバグが原因で発生します。 バッチが Sqlservr.exe から Fdhost プロセスに送信されるときに、OSM (outbound から Fdhost の共有メモリ) が、ドキュメントの次の列に収まるために十分なスペースがないことがあります。これが原因である場合があります。 この場合、Sqlservr.exe プロセスは、OSM 内のすべての既存のデータを処理するように Fdhost プロセスに通知するメッセージを送信します。 Fdhost プロセスがデータを処理している間、受信共有メモリ (ISM) は、Fdhost から Sqlservr.exe への共有メモリである場合があります。 この場合、Fdhost プロセスによって、Sqlservr.exe プロセスに "巻き戻し" メッセージが送信されます。 このメッセージは、Sqlservr.exe プロセスが最初の列から最後のドキュメントを再送信することを要求します。 ただし、Sqlservr.exe プロセスがもう一度ドキュメントの送信を開始すると、列1の代わりに列2から開始されます。 これにより、「Symptoms」セクションで説明されているエラーメッセージが表示されます。
解決方法
累積的な更新プログラムの情報
SQL Server 2008 R2 Service Pack 2
この問題の修正プログラムは、累積的な更新プログラム3で最初にリリースされました。この累積的な更新プログラムパッケージを SQL Server 2008 R2 Service Pack 2 で入手する方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2754552 SQL Server 2008 R2 Service Pack 2 の累積更新プログラムパッケージ3 注: ビルドは累積的であるため、各新しい修正プログラムには、以前の SQL Server 2008 R2 Service Pack 2 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2730301 SQL Server 2008 R2 Service Pack 2 がリリースされた後にリリースされた SQL Server 2008 R2 ビルド
SQL Server 2008
この問題の修正プログラムは、SQL Server 2008 のリリースバージョンの累積的な更新プログラム4で最初にリリースされました。SQL Server 2008 用の累積更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
963036 SQL Server 2008 の累積更新プログラムパッケージ4注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2008 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
956909 SQL Server 2008 がリリースされた後にリリースされた SQL Server 2008 ビルド
SQL Server 2008 Service Pack 1
この問題の修正プログラムは、SQL Server 2008 Service Pack 1 の累積更新プログラム1で最初にリリースされました。SQL Server 2008 用の累積更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
969099 SQL Server 2008 Service Pack 1 の累積的な更新プログラムパッケージ1注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2008 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
970365 SQL Server 2008 Service Pack 1 がリリースされた後にリリースされた SQL Server 2008 ビルド
回避策
この問題を回避するには、ISM のサイズを大きくします。 これを行うには、 sp_fulltext_service ストアドプロシージャを使用して ISM_Size 変数を構成します。現在の値を表示するには、' ism_size ' を sp_fulltext_service します。値を16に変更するには、sp_fulltext_service ' ism_size '、@value = 16注: この変更を有効にするには、SQL Server サービスを再起動する必要があります。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細情報
この問題は、人口の完了を妨げることはありません。 フルテキストインデックスには、再試行ロジックが組み込まれています。これは、成功したときに失敗したエントリの再試行を続けます。 そのため、エラーメッセージは安全に無視できます。 悪影響を与える可能性のある負の副作用は、母集団が完了するまでに通常より長い時間がかかる可能性があります。また、エラーを報告するためにフルテキストログの増加が大幅に増加します。ソースコードの再試行ロジックによって、破損の可能性があることを示すエラーメッセージが表示された場合でも、インデックスに損傷なく最終的に作成されます。 上で説明したように、 #2 のように、フルテキスト検索クエリまたは母集団は動作しません。これは、FDHOST コンポーネントが適切な状態になっていないため、この累積的な更新プログラムを適用する必要があるためです。
SQL Server 2008 の累積更新プログラムパッケージ4に関する詳細情報
変更されるファイルの詳細について、およびこの Microsoft サポート技術情報の記事で説明されている修正プログラムを含む累積的な更新プログラムパッケージを適用するための前提条件については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
963036 SQL Server 2008 の累積更新プログラムパッケージ4
SQL Server 2008 Service Pack 1 の累積的な更新プログラムパッケージ1の詳細情報
変更されるファイルの詳細について、およびこの Microsoft サポート技術情報の記事で説明されている修正プログラムを含む累積的な更新プログラムパッケージを適用するための前提条件については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
969099 SQL Server 2008 Service Pack 1 の累積的な更新プログラムパッケージ1
関連情報
SQL Server 2008 のリリース後に使用できるビルドの一覧の詳細については、次の記事の番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
956909 SQL Server 2008 がリリースされた後にリリースされた SQL Server 2008 ビルドSQL Server の段階的サービスモデルの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
935897 SQL Server チームが段階的なサービスモデルを利用して、報告された問題の修正プログラムを提供するSQL Server 更新プログラムの名前付けスキーマの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
822499 Microsoft SQL Server ソフトウェア更新プログラムパッケージの新しい名前付けスキーマソフトウェア更新プログラムの用語の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明