Procédure : configurer la détection de conflit pour la réplication transactionnelle d'égal à égal (programmation Transact-SQL de la programmation)

La réplication d'égal à égal inclut une option permettant d'activer la détection des conflits dans une topologie. Pour plus d'informations, consultez Détection de conflit dans la réplication d'égal à égal.

Pour utiliser la détection de conflit, tous les nœuds doivent exécuter SQL Server 2008 ou version ultérieure, et la détection doit être activée pour tous les nœuds. Vous pouvez activer la détection de conflit lorsque vous configurez une topologie ou une fois que la topologie a été configurée. Il n'est pas nécessaire de suspendre la topologie pour activer la détection de conflit pour une topologie existante. Toutefois, si des modifications conflictuelles apparaissent avant que la détection de conflit soit activée sur tous les nœuds, la réplication ne peut pas garantir la détection de ces conflits. Pour plus d'informations sur la façon de configurer une topologie, consultez Procédure : configurer la réplication transactionnelle d'égal à égal (programmation Transact-SQL de la programmation).

Notes

Lorsque vous configurez la réplication d'égal à égal, vous spécifiez un ID pour chaque nœud. Cet ID, qui doit être unique à travers tous les nœuds de la topologie est stocké dans la colonne originator_id de la table système MSpeer_originatorid_history. Si un nœud est supprimé de la topologie, l'ID est toujours conservé dans la table d'historique. L'ID est conservé pour empêcher de faux conflits d'avoir lieu si des modifications du nœud supprimé sont encore répliquées à travers la topologie. Si vous souhaitez réutiliser l'ID pour un nouveau nœud, vous devez tout d'abord supprimer manuellement l'ID de la table MSpeer_originatorid_history à tous les nœuds. Avant de supprimer un ID pour un nœud, exécutez sp_requestpeerresponse pour vérifier que toutes les modifications apportées à partir de ce nœud ont été répliquées.

Pour activer la détection de conflit lors de la configuration de la topologie

  • Lorsque vous créez une publication sur chaque nœud en utilisant sp_addpublication :

    • Affectez la valeur true à @p2p_conflictdetection.

    • Affectez un entier positif non nul à @p2p_originator_id. L'ID doit ne jamais avoir été utilisé dans la topologie. Pour obtenir une liste des ID qui ont déjà été utilisés, exécutez sp_help_peerconflictdetection.

    • Affectez une valeur à @p2p_continue_onconflict. Nous vous recommandons de spécifier la valeur false. Pour plus d'informations, consultez « Gestion des conflits » dans Détection de conflit dans la réplication d'égal à égal.

Pour activer la détection de conflit après qu'une topologie a été configurée

  1. Cette procédure suppose une topologie composée de trois nœuds : A, B et C. Sur le nœud A, exécutez sp_configure_peerconflictdetection :

    • Affectez le nom de la publication à @publication et la valeur enable à @action.

    • Affectez un entier positif non nul à @p2p_originator_id. L'ID doit ne jamais avoir été utilisé dans la topologie. Pour obtenir une liste des ID qui ont déjà été utilisés, exécutez sp_help_peerconflictdetection.

    • Affectez une valeur à @continue_onconflict. Nous vous recommandons de spécifier la valeur false. Pour plus d'informations, consultez « Gestion des conflits » dans Détection de conflit dans la réplication d'égal à égal.

  2. Répétez l'étape 1 pour le nœud B et le nœud C.

  3. Exécutez sp_help_peerconflictdetection à partir de l'un des nœuds et affectez le nom de la publication à @publication. Vérifiez le jeu de résultats pour vous assurer que la détection de conflit est activée sur tous les nœuds et que chaque nœud a une valeur d'ID d'appelant unique.

Pour désactiver la détection de conflit