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


11

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

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

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

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

これは事実ですか?


興味深い質問ですが、これらのデータベースの互換性レベルを変更する必要がある理由はありますか?物事がうまく機能している場合は、おそらくそのままにしておきます...
ジョン・セイゲル

それらを変更したい主な理由は、DBとそれらが置かれているサーバーが、シングルノード2005ボックスからマルチノード2008R2クラスターにアップグレードされたばかりだからです。さらに、私が利用を開始できるようにしたい機能(MERGEなど)の他のいくつかのビットがあります。
ボブは

1
互換性レベルについては、次の質問をご覧ください。dba.stackexchange.com
Jon Seigel

文明の終わり。猫と犬が一緒に住んでいます。大量のヒステリー。また、政府の閉鎖を引き起こす可能性があることについても触れておきます。しかし、あなたはそれについてはっきりしているようです。
swasheck 2013年

回答:


4

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

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

非常によく似た設定で同じことをしたいのですが、ディストリビューションデータベースも90互換モードになっています。私が理解していることから、ディストリビュータはパブリッシャとしてより低い互換性モードで動作することができません。それで、操作の順序は、「(発行された)データベースの互換性レベルを変更する」の前に「ディストリビュータの互換性レベルを変更する」を挿入するだけですか?
Queue Mann

"Change compatibility level of distributor" before "Change the compatibility level of the (published) database"正しい@QueueMann 。ディストリビューションデータベースは、パブリッシャーと同じまたはそれ以上の互換性レベルである必要があります。パブリッシャーは、ディストリビューターと同じレベルか、それより低いレベルにすることができます。
Kin Shah

2

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.