現象
トランザクションレプリケーションをセットアップし、Microsoft SQL Server 2012 または SQL Server 2014 のバックアップからトランザクションサブスクリプションを初期化する場合。 初回の同期中に、ディストリビューションエージェントが失敗し、次のエラーが表示されます。
サブスクライバーの初期化に接続しています。レプリケートされたトランザクションは使用できません。42000ストアドプロシージャ ' sp_MSins_ ' が見つかりませんでした。 281242000はストアドプロシージャ ' sp_MSins_ ' を見つけることができませんでした。 2812
原因
この問題は、ログリーダーエージェントとディストリビューションエージェントの初期実行の間のタイミングが異なるために発生します。 パブリッシャーで発生しているトランザクションの変更が大量にある場合は、ログリーダーエージェントで、ディストリビューションデータベース内の MSRepl_commands へのカスタムストアドプロシージャスクリプトの生成と追加が遅延します。 ディストリビューションエージェントが開始され、これらのコマンドが追加される前に、既にディストリビューションデータベースへのラウンドトリップが行われている場合は、トランザクションのタイムスタンプが先に移動され、"レプリケートされたトランザクションは利用できません" と報告されます。 ディストリビューションエージェントによる同期の試行では、カスタムストアドプロシージャ作成コマンドが検出されず、"Symptoms" セクションで説明したエラーが発生します。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。
SQL Server 2014 の累積更新プログラム1 /en-us/help/2931693
SQL Server 2012 SP1 の累積更新プログラム9 /en-us/help/2931078
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。