Validation des données répliquées

La réplication transactionnelle et de fusion vous permet de vérifier que les données sur l'Abonné correspondent aux données sur le serveur de publication. La validation peut être réalisée pour des abonnements spécifiques ou pour tous les abonnements à une publication. Spécifiez un des types de validation suivants et l'Agent de distribution ou l'Agent de fusion validera les données lors de sa prochaine exécution :

  • Calculer uniquement le nombre de lignes. Ceci vérifie si la table sur l'Abonné a le même nombre de lignes que la table sur le serveur de publication, mais ne vérifie pas que le contenu des lignes correspond. La validation du nombre de lignes constitue une approche « légère » de la validation et peut vous informer de problèmes dans vos données.

  • Calculer le nombre de lignes et comparer les sommes de contrôle binaires. Outre le comptage des lignes sur le serveur de publication et sur l'Abonné, une somme de contrôle de toutes les données est calculée à l'aide de l'algorithme de somme de contrôle. Si le nombre de lignes est erroné, la somme de contrôle n'est pas effectuée.

En plus de vérifier que les données sur l'Abonné et sur le serveur de publication correspondent, la réplication de fusion donne la possibilité de vérifier que les données sont partitionnées correctement pour chaque Abonné. Pour plus d'informations, consultez Validation des informations de partition pour un Abonné de fusion.

Pour valider des données

Pour valider tous les articles d'un abonnement, utilisez SQL Server Management Studio, des procédures stockées ou RMO (Replication Management Objects). Pour valider des articles individuels dans des publications d'instantané et transactionnelles, vous devez utiliser des procédures stockées.

Résultats de la validation des données

Quand la validation est terminée, l'Agent de distribution ou l'Agent de fusion consigne des messages relatifs au succès ou à l'échec (la réplication ne rapporte pas quelles lignes ont échoué). Ces messages peuvent être affichés dans SQL Server Management Studio, dans le moniteur de réplication et dans les tables système de réplication. Les rubriques de procédures ci-dessus montrent comment exécuter une validation et afficher les résultats.

Pour gérer les échecs de validation, considérez les points suivants :

Considérations sur la validation des données

Prenez en compte les problèmes suivants lors de la validation des données :

  • Vous devez arrêter toutes les activités de mise à jour sur les Abonnés avant de valider les données (il n'est pas nécessaire d'arrêter les activités sur le serveur de publication pendant la validation).

  • Dans la mesure où les sommes de contrôle et les sommes de contrôle binaires peuvent nécessiter des ressources processeur importantes lors de la validation d'un jeu de données de grande taille, il est préférable de planifier la validation au moment où l'activité est la plus faible sur les serveurs utilisés dans la réplication.

  • La réplication valide seulement des tables ; elle ne vérifie pas si des articles de schéma uniquement (tels que des procédures stockées) sont identiques sur le serveur de publication et sur l'Abonné.

  • La somme de contrôle binaire peut être utilisée avec toutes les tables publiées. La somme de contrôle valide les tables avec des filtres de colonnes, ou des structures de table logique où les décalages des colonnes diffèrent (à cause d'instructions ALTER TABLE qui suppriment ou ajoutent des colonnes).

  • La validation de réplication utilise les fonctions checksum et binary_checksum. Pour plus d'informations sur leur comportement, consultez CHECKSUM (Transact-SQL) et BINARY_CHECKSUM (Transact-SQL).

  • Une validation utilisant la somme de contrôle binaire ou la somme de contrôle peut signaler de façon incorrecte un échec si les types de données sont différents entre l'Abonné et le serveur de publication. Cela peut se produire si vous effectuez l'une des opérations suivantes :

    • Vous définissez explicitement les options de schéma pour qu'elles correspondent aux types de données des versions antérieures de SQL Server. Pour plus d'informations sur le mappage des types de données, consultez Utilisation de plusieurs versions de SQL Server dans une topologie de réplication.

    • Vous définissez le niveau de compatibilité de la publication pour une publication de fusion sur une version antérieure de SQL Server, et les tables publiées contiennent un ou plusieurs types de données qui doivent être mappés pour cette version. Pour plus d'informations sur le mappage des types de données et le niveau de compatibilité des publications, consultez Utilisation de plusieurs versions de SQL Server dans une topologie de réplication.

    • Vous initialisez manuellement un abonnement et utilisez différents types de données sur l'Abonné.

  • Les validations de somme de contrôle binaire et de somme de contrôle ne sont pas prises en charge pour les abonnements transformables dans le cadre de la réplication transactionnelle.

  • La validation n'est pas prise en charge pour les données répliquées vers des Abonnés non-SQL Server.

Fonctionnement de la validation des données

SQL Server valide les données en calculant un nombre de lignes et/ou une somme de contrôle sur le serveur de publication, puis en comparant ces valeurs au nombre de lignes et/ou à la somme de contrôle calculé sur l'Abonné. Une valeur est calculée pour l'ensemble de la table de publication et une autre est calculée pour l'ensemble de la table d'abonnement, mais les données des colonnes text, ntext ou image ne sont pas prises en compte dans les calculs.

Pendant l'exécution des calculs, des verrous partagés sont temporairement placés sur les tables pour lesquelles le nombre de lignes ou la somme de contrôle est calculé. Ces calculs sont cependant effectués rapidement et les verrous partagés sont généralement retirés au bout de quelques secondes.

Lors de l'utilisation des sommes de contrôle binaires, le contrôle de redondance cyclique (CRC) 32 bits est effectué colonne par colonne, et non pas sur la ligne physique de la page de données. Ainsi, quel que soit l'ordre physique des colonnes de la table dans la page de données, elles participent au même calcul de CRC de ligne. La validation par somme de contrôle binaire peut être utilisée lorsque des filtres de lignes ou de colonnes sont appliqués à la publication.