Impact de la modification du niveau de compatibilité de base de données pour une base de données répliquée publiée de 90 à 100


11

J'ai un serveur SQL Server 2008 R2 avec un tas de bases de données publiées qui fonctionnent actuellement sous le niveau de compatibilité 90 (2005).

Les bases de données d'abonnement sont également SQL Server 2008 R2, mais les bases de données de destination sont définies sur le niveau de compatibilité 100 et la réplication fonctionne correctement.

Si je modifie le niveau de compatibilité des bases de données publiées, cela affectera-t-il la réplication de quelque manière que ce soit, ou s'agira-t-il simplement de réinitialiser tous les abonnements et de redémarrer la réplication?

Je soupçonne que la modification du niveau de compatibilité de la base de données publiée peut modifier légèrement le fonctionnement des procédures stockées de réplication, mais je ne suis pas sûr à 100%.

Est-ce le cas?


Question intéressante, mais y a-t-il une raison pour laquelle ces bases de données doivent voir leur niveau de compatibilité modifié? Si les choses fonctionnent bien, je le laisserais probablement tranquille ...
Jon Seigel

La principale raison pour laquelle j'aimerais les changer est que la base de données et les serveurs sur lesquels ils se trouvent viennent d'être mis à niveau d'une boîte 2005 à nœud unique vers un cluster 2008R2 à nœuds multiples. De plus, il y a quelques autres fonctionnalités (telles que MERGE, etc.) que j'aimerais pouvoir utiliser.
Bob

1
Vous voudrez peut-être lire cette question concernant ce que fait le niveau de compatibilité: dba.stackexchange.com/questions/5166/…
Jon Seigel

La fin de la civilisation. Chats et chiens vivant ensemble. Panique collective. Je dois également mentionner que cela peut entraîner la fermeture du gouvernement. Cependant, vous semblez être clair sur ce point.
swasheck

Réponses:


4

Vous pouvez suivre les étapes ci-dessous:

  • Assurez-vous que l'agent de lecture du journal est en cours d'exécution pour la base de données. Par défaut, l'agent s'exécute en continu.
  • Arrêtez l'activité des utilisateurs sur les tables publiées.
  • Accordez du temps à l'agent de lecture du journal pour copier les transactions dans la base de données de distribution, puis arrêtez l'agent.
  • Exécutez sp_replcmds pour vérifier que toutes les transactions ont été traitées. Le jeu de résultats de cette procédure doit être vide.
  • Exécutez sp_replflush pour fermer la connexion à partir de sp_replcmds.
  • Modifiez le niveau de compatibilité de la base de données .
  • Démarrez l'agent de lecture du journal.

J'ai une configuration très similaire et je veux faire la même chose mais ma base de données de distribution est également en mode de compatibilité 90. D'après ce que je comprends, le distributeur ne peut pas fonctionner sur un mode de compatibilité inférieur en tant qu'éditeur. L'ordre des opérations serait-il donc simplement d'insérer "Modifier le niveau de compatibilité du distributeur" avant "Modifier le niveau de compatibilité de la base de données (publiée)" - une fois le lecteur de journaux éteint?
Queue Mann

@QueueMann "Change compatibility level of distributor" before "Change the compatibility level of the (published) database"qui est correct. La base de données de distribution doit être au même niveau de compatibilité ou supérieur à Publisher. Un éditeur peut être au même niveau ou moins qu'un distributeur.
Kin Shah

2

Nous l'avons fait, juste pour être sûr, nous avons cessé de répliquer cette base de données, changé le niveau de compatibilité, puis réinitialisé. Nous n'avons rencontré aucun problème. C'était une publication assez petite et il n'y avait qu'une seule base de données abonnée. Je pense que cela pourrait être plus difficile car vos scénarios de réplication deviennent plus complexes. (c.-à-d. abonnement à db pour obtenir des publications de plusieurs dbs, etc.)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.