[SQL Server] Réplication : validation de la cohérence de la réplication

Ce billet traite brièvement de la validation de la cohérence de la réplication, quel que soit son type.

Intérêt de la démarche de validation de la cohérence de la réplication

Il est usuellement considéré comme étant une bonne pratique d’effectuer des validations régulières de la cohérence des données répliquées entre une base de publication et son (ou ses) abonné(s).

La validation se fait suivant les étapes suivantes :

  • Lancement de la procédure stockée sp_publication_validation qui va lancer la procédure stockée sp_article_validation pour valider les données associées à chaque article concerné.
  • La procédure stockée sp_article_validation va ensuite invoquer sp_table_validation afin de calculer le nombre de lignes, et éventuellement faire une somme de contrôles (checksum) de la table publiée.

Quand une validation échoue, le Distributor Agent lève l’erreur système 20574. Dans le cas échéant, en cas de succès, le code 20575 sera levé.

Notons que cette approche de validation peut ne pas fonctionner si certains filtres (de tables) ont été appliqués. Il faudra donc les utiliser avec précaution. De plus, la validation basée sur le calcul de nombre de lignes est une opération moins coûteuse que celle, plus précise, combinée avec la comparaison des sommes de contrôles.

Modus operandi de lancement d’une validation de la cohérence de la réplication

Pour lancer la validation des abonnements d’une publication, faites un clic-droit sur la publication concernée (au sein de l’explorateur d’objets de SSMS, sous Réplication>Publications locales), puis sélectionnez Valider tous les abonnements :

Cela lancera cet exemple de boîte modale :


Pour un résultat optimum, il ne doit pas y avoir de mises-à-jour entre l’éditeur et l’abonné durant le traitement de validation de données.

Il est possible d’automatiser son lancement en utilisant, par exemple, un SQL Agent job planifié (ou non) exécutant la procédure stockée sp_publication_validation sur l’éditeur. Le lien suivant présente en détail ladite procédure stockée : http://technet.microsoft.com/en-us/library/ms173543.aspx.

Une autre alternative (parmi bien d’autres) existe : l’utilitaire TableDiff.exe qui peut être exécuté via un batch planifié (cf : http://msdn.microsoft.com/fr-fr/library/ms162843.aspx).

Par ailleurs, vous pouvez configurer des alertes notifiant un problème si une validation ne s’est pas faite avec succès (code d’erreur 20574) : http://msdn.microsoft.com/en-us/library/ms152496.aspx. Et en cas d’erreur de validation, il est possible de faire en sorte que l’alerte idoine lance automatiquement une réinitialisation (snasphot + synchronisation). Il suffira simplement d’aller dans les propriétés de l’alerte Réplication : l’Abonné n’a pas réussi la validation des données, puis dans Réponse :



On suppose, bien sûr, que l’alerte concernée a été activée.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s