Microsoft は、Microsoft SQL Server 2008 Service Pack 3 の修正プログラムを1つのダウンロード可能なファイルとして配布します。 修正プログラムは累積的であるため、新しいリリースごとに、以前の SQL Server 2008 Service Pack 3 fix release に含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。
現象
次のような状況で問題が発生します。
-
データベースのミラーリングを構成するには、Microsoft SQL Server 2008 または Microsoft SQL Server 2008 R2 の2つのインスタンスを使用します。
-
データベースミラーリングパートナーシップのプリンシパルサーバー上の主要な読み取り/書き込みデータベースであるデータベースに対して、トランザクションレプリケーションパブリケーションを構成します。 レプリケーションの初期化が完了し、サブスクライバーと同期されます。
-
レプリケートされたデータベースは、プリンシパルサーバーからミラーサーバーにフェールオーバーします。 注: この場合、元のミラーサーバーによって役割が切り替わり、データベースは新しいプリンシパルデータベースとして読み取り/書き込みモードでオンラインになります。
-
新しいプリンシパルインスタンスのパブリケーションに記事を追加します。 レプリケーションの初期化が完了し、サブスクライバーと同期されます。
-
別の記事を文書に追加します。
このシナリオでは、次のエラーメッセージが表示されます。エラー メッセージ 1
初期化が必要なサブスクリプションがないため、スナップショットは生成されませんでした。
エラー メッセージ 2
メッセージ14058、レベル16、状態1、プロシージャ sp_MSrepl_addsubscription_article、行 33 1 サブスクリプションがサブスクリプションデータベースに既に存在しているため、サブスクリプションを作成できません。 各サブスクリプションデータベースでは、同じパブリケーションに対して1つのサブスクリプションしか許可されません。 サブスクリプションを削除し、必要に応じてもう一度追加します。 問題が解決しない場合は、レプリケーションメタデータが間違っている可能性があります。トラブルシューティング情報についてはオンラインブックを参照する
注:この問題は、元のプリンシパルインスタンスにフェールオーバーした後、同じアーティクルを追加した場合にも発生します。
解決方法
累積的な更新プログラムの情報
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 R2 Service Pack 1
この問題の修正プログラムは、累積的な更新プログラム9で最初にリリースされました。SQL Server 2008 R2 Service Pack 1 用の累積更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2756574 累積的な更新プログラムパッケージ 9 (SQL Server 2008 R2 Service Pack 1)注: ビルドは累積的であるため、各新しい修正プログラムには、以前の SQL Server 2008 R2 Service Pack 1 修正プログラムに含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2567616 SQL Server 2008 R2 Service Pack 1 がリリースされた後にリリースされた SQL Server 2008 R2 ビルド
SQL Server 2008 Service Pack 3
この問題の修正プログラムは、SQL Server 2008 Service Pack 3 用の累積更新プログラム7で最初にリリースされました。SQL Server 2008 Service Pack 3 用の累積更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2738350 累積的な更新プログラムパッケージ 7 (SQL Server 2008 Service Pack 3)注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2008 Service Pack 3 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2629969 SQL Server 2008 Service Pack 3 がリリースされた後にリリースされた SQL Server 2008 ビルド
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細情報
レプリケーションとデータベースミラーリングの構成方法の詳細については、次の MSDN web サイトを参照してください。
レプリケーションとデータベースミラーリングを構成する方法データベースのミラーリングの詳細については、次の MSDN web サイトを参照してください。
回避策
この問題を回避するには、sys が原因かどうかを確認します。アーティクルを追加する前に、アクティブなデータベースインスタンスでserver_id列とsyssubscriptionsの列が一致していること。注意事項
-
2つの列が一致しない場合は、列が一致するインスタンスから文書に記事を追加する必要があります。 データベースをパートナーインスタンスにフェイルオーバーするために、ダウンタイムをスケジュールすることが必要な場合があります。
-
Syssubscriptionsテーブルに複数のsrvid値がある場合は、別のsrvid値のアーティクルを削除し、データベースをパートナーインスタンスにフェイルオーバーしてから、もう一度アーティクルを追加します。