web-dev-qa-db-ja.com

公開された複製DBのDB互換性レベルを90から100に変更した場合の影響

現在、互換性レベル90(2005)で動作している一連の公開データベースを備えたSQL Server 2008 R2サーバーがあります。

サブスクリプションデータベースもSQL Server 2008 R2ですが、宛先データベースは互換性レベル100に設定されており、レプリケーションは正常に機能しています。

パブリッシュされたデータベースの互換性レベルを変更した場合、レプリケーションに何らかの影響がありますか、それともすべてのサブスクリプションを再初期化してレプリケーションを再開した場合だけでしょうか?

パブリッシュされたデータベースの互換性レベルを変更すると、レプリケーションストアドプロシージャの機能がわずかに変わる可能性があると思いますが、100%確実ではありません。

これは事実ですか?

11
Bob

以下の手順に従ってください:

  • データベースに対してログリーダーエージェントが実行されていることを確認します。デフォルトでは、エージェントは継続的に実行されます。
  • パブリッシュされたテーブルでのユーザーアクティビティを停止します。
  • ログリーダーエージェントがトランザクションをディストリビューションデータベースにコピーするまで待ち、エージェントを停止します。
  • Sp_replcmdsを実行して、すべてのトランザクションが処理されたことを確認します。この手順の結果セットは空である必要があります。
  • Sp_replflushを実行して、sp_replcmdsからの接続を閉じます。
  • データベースの互換性レベルを変更します
  • ログリーダーエージェントを起動します。
4
Kin Shah

安全のために、データベースの複製を停止し、互換性レベルを変更して、再初期化しました。問題はありませんでした。それはかなり小さな出版物であり、購読されているデータベースは1つだけでした。レプリケーションシナリオが複雑になるほど、難しいかもしれません。 (つまり、多くのDBからパブリケーションを取得するDBをサブスクライブする、など)

2
rottengeek