次の方法で共有


MSSQL_REPL027183

適用対象: SQL ServerAzure SQL Managed Instance

メッセージの詳細

属性
製品名 SQL Server
イベント ID 27183
イベント ソース MSSQLSERVER
コンポーネント SQL Server データベース エンジン
シンボル名
メッセージ テキスト マージ処理で、パラメーター化された行フィルターを使用して、アーティクル内の変更情報を列挙できませんでした。 このエラーが継続して発生する場合、このプロセスのクエリ タイムアウト値を増やし、パブリケーションの保有期間を減少し、パブリッシュされたテーブルのインデックスを強化してください。

説明

このエラーは、フィルター選択されたパブリケーションでの変更を処理中に、マージ エージェント タイムアウトになると発生します。 このタイムアウトは、次のいずれかの問題点により生じた可能性があります。

  • 事前計算済みパーティションの最適化の未使用

  • フィルター選択に使用される列のインデックスの断片化

  • MSmerge_tombstoneMSmerge_contentsMSmerge_genhistoryなどの、大規模なマージ メタデータ テーブル

  • 一意キーで結合されていないフィルター選択されたテーブルや多くのテーブルを含む結合フィルター

ユーザーの操作

この問題を解決するには:

  • マージ エージェントの -QueryTimeOut パラメーターの値を大きくし、エラーの原因となっている根本的な問題に対処する間、処理を継続できるようにします。 エージェント パラメーターは、エージェント プロファイルおよびコマンド ラインで指定できます。 詳細については、次を参照してください。

  • 可能であれば、事前計算済みパーティションの最適化を使用します。 既定では、この最適化は、多くのパブリケーションの要件が満たされている場合に使用されます。 これらの要件の詳細については、「事前計算済みパーティションによるパラメーター化されたフィルターのパフォーマンス最適化」を参照してください。 パブリケーションがこれらの要件を満たしていない場合は、パブリケーションを再設計することを検討してください。

  • パブリケーションの保有期間をできる限り低い設定に指定します。保有期間に達するまで、レプリケーションはパブリケーション データベースおよびサブスクリプション データベースでメタデータをクリーンアップできません。 詳細については、「 Subscription Expiration and Deactivation」を参照してください。

  • マージ レプリケーションのメンテナンスの一環として、マージ レプリケーションに関連付けられたシステム テーブル MSmerge_contentsMSmerge_genhistoryMSmerge_tombstoneMSmerge_current_partition_mappings、および MSmerge_past_partition_mappingsの増大を必要に応じて確認します。 定期的にこれらのテーブルのインデックスを再設定します。 詳細については、「 インデックスの再編成と再構築」を参照してください。

  • フィルター選択に使用する列のインデックスが適切であることを確認し、必要に応じてインデックスを再構築します。 詳細については、「 インデックスの再編成と再構築」を参照してください。

  • 一意な列に基づく結合フィルターの join_unique_key プロパティを設定します。 詳しくは、「 Join Filters」をご覧ください。

  • 結合フィルター階層のテーブル数を制限します。 テーブルが 5 つ以上の結合フィルターを生成する場合は、小さなテーブル、変更されないテーブル、プライマリ参照テーブルはフィルター選択しないという別の解決策を検討してください。 結合フィルターは、サブスクリプション間でパーティション分割する必要のあるテーブル間でのみ使用します。

  • 同期を行うまでの間はフィルター選択されたテーブルへの変更を少なくするか、マージ エージェントをより頻繁に実行します。 同期処理のスケジュール設定の詳細については、「 Specify Synchronization Schedules」を参照してください。

参照

エラーとイベントのリファレンス (レプリケーション)