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. En plus de compter les 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 d'un algorithme de somme de contrôle introduit dans Microsoft SQL Server 2000. Si le comptage des lignes échoue, la somme de contrôle n'est pas effectuée.
  • Calculer le nombre de lignes et comparer les sommes de contrôle. Cette option est abandonnée et doit être utilisée seulement pour les abonnés exécutant Microsoft SQL Server version 7.0. Il utilise la même approche que calculer le nombre de lignes et comparer les sommes de contrôle binaires, mais il utilise l'algorithme de somme de contrôle qui est disponible dans SQL Server version 7.0. Pour plus d'informations, consultez la section « Fonctionnement de la validation des données » dans cette rubrique.

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 de capture instantanée 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).
  • Les données de colonnes text, ntext ou image ne sont pas prises en compte dans les calculs de somme de contrôle.
  • Une validation utilisant la somme de contrôle binaire ou la somme de contrôle peut rapporter erronément un échec si des types de données sont différents entre l'Abonné et le serveur de publication. Cela peut se produire si vous initialisez un abonnement manuellement et que vous utilisez des types de données différents sur l'Abonné, ou bien si vous utilisez les options de schéma suivantes pour un article :
    • Mappage de types définis par l'utilisateur à des types de données de base (option de schéma 0x20)
    • Mappage de xml à ntext (option de schéma 0x10000000)
    • Mappage de nvarchar(max) et varbinary(max) à des types de données pris en charge sur des versions antérieures de SQL Server (option de schéma 0x20000000).
      Pour plus d'informations sur les options de schéma, consultez Publication de données et d'objets de base de données.
  • 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 figurant dans les colonnes text, ntext or 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. Les Abonnés exécutant SQL Server version 7.0 doivent utiliser les algorithmes de somme de contrôle livrés avec SQL Server version 7.0, qui génère des valeurs de CRC différentes de celles qui sont générées avec SQL Server 2000 et ultérieur. Les routines de somme de contrôle livrées avec SQL Server version 7.0 ne peuvent pas valider 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).

Voir aussi

Concepts

Méthodes conseillées pour l'administration de la réplication

Autres ressources

Administration de la réplication

Aide et Informations

Assistance sur SQL Server 2005