Auswirkungen der Änderung der DB-Kompatibilitätsstufe für eine veröffentlichte replizierte DB von 90 auf 100

11

Ich habe einen SQL Server 2008 R2-Server mit einer Reihe veröffentlichter Datenbanken, die derzeit unter Kompatibilitätsstufe 90 (2005) ausgeführt werden.

Die Abonnementdatenbanken sind ebenfalls SQL Server 2008 R2, die Zieldatenbanken sind jedoch auf Kompatibilitätsstufe 100 eingestellt und die Replikation funktioniert einwandfrei.

Wenn ich die Kompatibilitätsstufe für die veröffentlichten Datenbanken ändere, wirkt sich dies in irgendeiner Weise auf die Replikation aus, oder handelt es sich lediglich um eine Neuinitialisierung aller Abonnements und einen Neustart der Replikation?

Ich vermute, dass das Ändern der veröffentlichten Datenbankkompatibilitätsstufe die Funktionsweise der gespeicherten Replikationsprozeduren geringfügig ändern kann, bin mir jedoch nicht 100% sicher.

Ist das der Fall?

Bob
quelle
Interessante Frage, aber gibt es einen Grund, warum diese Datenbanken ihre Kompatibilitätsstufe ändern müssen? Wenn die Dinge gut funktionieren, würde ich es wahrscheinlich einfach in Ruhe lassen ...
Jon Seigel
Der Hauptgrund, warum ich sie ändern möchte, ist, dass die Datenbank und die Server, auf denen sie sitzen, gerade von einer Single-Node-2005-Box auf einen Multi-Node-2008R2-Cluster aktualisiert wurden. Darüber hinaus gibt es noch einige andere Funktionen (wie MERGE usw.), die ich gerne nutzen möchte.
Bob
1
Vielleicht möchten Sie diese Frage bezüglich der Kompatibilitätsstufe lesen: dba.stackexchange.com/questions/5166/…
Jon Seigel
Das Ende der Zivilisation. Katzen und Hunde leben zusammen. Massenhysterie. Ich sollte auch erwähnen, dass dies zu einem Regierungsstillstand führen kann. In diesem Punkt scheinen Sie jedoch im klaren zu sein.
Swasheck

Antworten:

4

Sie können die folgenden Schritte ausführen:

  • Stellen Sie sicher, dass der Log Reader Agent für die Datenbank ausgeführt wird. Standardmäßig wird der Agent kontinuierlich ausgeführt.
  • Beenden Sie die Benutzeraktivität für veröffentlichte Tabellen.
  • Warten Sie, bis der Log Reader Agent Transaktionen in die Verteilungsdatenbank kopiert hat, und stoppen Sie dann den Agenten.
  • Führen Sie sp_replcmds aus, um zu überprüfen, ob alle Transaktionen verarbeitet wurden. Die Ergebnismenge dieser Prozedur sollte leer sein.
  • Führen Sie sp_replflush aus, um die Verbindung von sp_replcmds zu schließen.
  • Ändern Sie die Kompatibilitätsstufe der Datenbank .
  • Starten Sie den Log Reader Agent.
Kin Shah
quelle
Ich habe ein sehr ähnliches Setup und möchte dasselbe tun, aber meine Verteilungsdatenbank befindet sich ebenfalls im 90-Kompatibilitätsmodus. Soweit ich weiß, kann der Distributor nicht als Publisher mit einem niedrigeren Kompatibilitätsmodus arbeiten. Wäre es also die Reihenfolge der Operationen, einfach "Kompatibilitätsstufe des Verteilers ändern" vor "Kompatibilitätsstufe der (veröffentlichten) Datenbank ändern" einzufügen - nachdem der Protokollleser ausgeschaltet wurde?
Warteschlange Mann
@ QueueMann "Change compatibility level of distributor" before "Change the compatibility level of the (published) database"das ist richtig. Die Verteilungsdatenbank sollte dieselbe oder eine höhere Kompatibilitätsstufe als Publisher aufweisen. Ein Publisher kann sich auf derselben oder einer niedrigeren Ebene befinden als ein Distributor.
Kin Shah
2

Wir haben dies getan, um sicher zu gehen, haben wir die Replikation dieser Datenbank gestoppt, die Kompatibilitätsstufe geändert und dann neu initialisiert. Wir haben keine Probleme verursacht. Es war eine ziemlich kleine Veröffentlichung und es gab nur eine abonnierte Datenbank. Ich denke, es könnte möglicherweise schwieriger sein, wenn Ihre Replikationsszenarien komplexer werden. (dh Abonnieren von db, um Veröffentlichungen von vielen dbs usw. zu erhalten)

rottengeek
quelle