1

Problème lié à la réplication,Problème lié à la réplication,

J'explique mon architecture.

J'ai créé, son processus de réplication transactinal

  1. 2 Editeur sur la table VENDEURS script que j'ai donné ci-dessous,
  2. Un distributeur
  3. 2 Abonnés

La réplication des données mis en place est comme ceci:

La table VENDORS est répliquée de 2-publishers à 2-subscribers via-Distributor.

Alors que la réplication, erreur émis dans la base de distributeur comme:

Ici, Ce qui doit arriver est

Pub1 (crée des fournisseurs de table de pubs) -> insère des données (fournisseurs) au distributeur. -> traction par les abonnés

Ce qui se passe maintenant pour moi,

Pub1 (crée pubs fournisseurs-fait table) -> Jetés erreur à la base de données de distribution comme

distribution réplication-réplication Sous-système: échec de l'agent abc-serv1 \ PRD01-étoile-étoile Billing-PROD-VREPL1 \ REPL01-25. Violation de la contrainte PRIMARY KEY 'PK_vendors'. Impossible d'insérer une clé en double dans l'objet 'dbo.vendors'.

Une erreur est émise lors de l'opération entre les éditeurs et le distributeur.

Répondre

0

La clé primaire de l'éditeur doit être gérée par l'abonné lors de l'utilisation de la réplication transactionnelle. Il semble qu'un enregistrement avec la valeur de clé donnée existe déjà sur l'abonné.

De votre description de topologie, vous avez deux publications distinctes.

Alors:

  • Abonné 1 reçoit Publication 1
  • Abonné 2 reçoit Publication 2

Y at-il par exemple de croisement peut l'abonné 2 reçoit également Publication 1. Si oui, alors vous rencontrerez Conflits de clé primaire sauf si vous gérez les plages de clés sur les deux éditeurs ou si vous utilisez une technologie de réplication alternative, telle que la réplication de fusion.

+0

Il n'y a pas de croisement, et il n'y a pas d'entrée à l'abonné, au processus de distribution lui-même il jette l'erreur.l'objectif principal est d'avoir une table nommée ABC_tab_repilca qui comme identité, PK valeurs où elle doit être répliquée par transaction réplica, mon envi doit être comme je l'ai spécifié, 2 pub - 2 sub utilisant la base de données de distribution, toutes les opérations dans la table ABC_table_replica doivent être répliquées pub-1 à sub-1 et pub2 à sub-2. Le problème survient si la publication est créée pour PUB = 1 et crée dans Distribution, AGAIN les entrées d'entrée PUB = 1 dans la distribution, cela peut entraîner une erreur de violation PK. – Dhiva

+0

Mon besoin est le nom de la table: ABC_tab_replica - contient les enregistrements qu'il a PK, les valeurs d'identité: 1. PUB = 2 créé pour cette table ABC_tab_replica méthode Transactionnelle est utilisée, via la base de données distribuée 2. SUB = 2 créé pour cette table ABC_tab_replica La table ABC_tab_replica doit contenir la synchronisation des données dans la base de données principale et la base de données répliquée – Dhiva