MSSQL_ENG018752

適用対象: SQL ServerAzure SQL Managed Instance

メッセージの詳細

属性
製品名 SQL Server
イベント ID 18752
イベント ソース MSSQLSERVER
コンポーネント SQL Server データベース エンジン
シンボル名
メッセージ テキスト 同時にデータベースに接続できるログ リーダー エージェントまたはログ関連のプロシージャ (sp_repldone、sp_replcmds、および sp_replshowcmds) は 1 つだけです。 ログ関連のプロシージャを実行した場合、そのプロシージャが実行された接続を削除するか、その接続に対して sp_replflush を実行してから、ログ リーダー エージェントを開始するか、別のログ関連のプロシージャを実行してください。

説明

複数の現在の接続が、 sp_repldonesp_replcmdssp_replshowcmdsのいずれかを実行しようとしています。 ストアド プロシージャ sp_repldone (Transact-SQL)sp_replcmds (Transact-SQL) は、パブリッシュされたデータベース内のレプリケートされたトランザクションに関する情報を検索および更新するためにログ リーダー エージェントによって使用されるストアド プロシージャです。 ストアド プロシージャ sp_replshowcmds (Transact-SQL) は、トランザクション レプリケーションに関する特定の種類の問題のトラブルシューティングに使用されます。

このエラーは、次の状況で発生します。

  • パブリッシュされたデータベースのログ リーダー エージェントが実行されており、2 番目のログ リーダー エージェントの実行を同じデータベースに対して試みた場合、2 番目のエージェントに対してエラーが発生し、エージェント履歴に表示されます。

    複数のエージェントが存在する状況では、いずれかのエージェントは孤立したプロセスが原因の可能性があります。

  • パブリッシュされたデータベースに対してログ リーダー エージェントが起動されており、ユーザーが sp_repldonesp_replcmds、または sp_replshowcmds を同じデータベースに対して実行する場合は、ストアド プロシージャ ( sqlcmdなど) が実行されるとアプリケーションでエラーが発生します。

  • パブリッシュされたデータベースに対してログ リーダー エージェントが実行されておらず、ユーザーが sp_repldonesp_replcmds、または sp_replshowcmds を実行してから、プロシージャを実行した接続を閉じない場合は、ログ リーダー エージェントによってデータベースへの接続が試行されるとエラーが発生します。

ユーザーの操作

次の手順を実行して、この問題に対するトラブルシューティングに役立てることができます。 いずれかの手順によって、ログ リーダー エージェントをエラーを発生させないで起動できるようになった場合は、残りの手順を実行する必要はありません。

  • このエラーの発生原因となる可能性があるその他のエラーについて、ログ リーダー エージェントの履歴を確認します。 レプリケーション モニターでのエージェントの状態やエラーの詳細の表示について詳しくは、レプリケーション モニターを使用した情報の表示とタスクの実行に関するページを参照してください。

  • sp_who (Transact-SQL) の出力で、パブリッシュされたデータベースに接続されている特定のプロセス識別番号 (SPID) を確認します。 sp_repldonesp_replcmds、または sp_replshowcmdsを実行していた可能性のある接続をすべて閉じます。

  • ログ リーダー エージェントを再起動します。 詳細については、「レプリケーション エージェントを起動および停止する (SQL Server Management Studio)」を参照してください。

  • ディストリビューターで SQL Server エージェント サービスを再起動します (クラスター内でオフラインまたはオンラインにします)。 スケジュールされたジョブがその他の インスタンスからsp_repldone sp_replcmds 、または sp_replshowcmds SQL Server を実行した可能性がある場合は、これらのインスタンスに対しても SQL Server エージェントを再起動します。 詳細については、「SQL Server エージェント サービスの開始、停止、または一時停止」を参照してください。

  • パブリケーション データベースでパブリッシャーで sp_replflush (Transact-SQL) を実行し、ログ リーダー エージェントを再起動します。

  • エラーの発生が継続する場合は、エージェントのログ記録を増やし、ログの出力ファイルを指定します。 エラーのコンテキストによっては、エラーや他のエラー メッセージにつながる手順が示される可能性もあります。

参照

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