We've merge replication configured in our environment(1 Publisher, 3 Subscribers) and We know by default merge replication is bi-directional. Its working fine in case of inserts i.e, if a row is inserted at publisher then it's getting updated at subscriber and vice versa. The real issue is, if row gets deleted at publisher then its getting deleted at subscriber but, if a row gets deleted in any of 3 subscribers then its not getting deleted at publisher.

When a row is deleted at publisher then it's getting updated in MSmerge_tombstone(Publisher). But, in case of subscriber, the corresponding row(rowguid) is not getting updated in MSmerge_tombstone(Subscriber). I think that might be the issue, even merge delete trigger exist on these tables(Subscriber). Please help me out, as it is a production issue.

Publisher(2008R2 sp1-Enterprise), Subscribers(2008R2 sp1-Standard)

  • See this: dba.stackexchange.com/q/43564/2718 -- make sure the @delete_tracking option is set correctly. – Jon Seigel Sep 8 '13 at 0:46
  • delete_tracking is enabled(set to '1') – nadeem Sep 8 '13 at 12:19
  • Have you tried to add an additional subscriber to see if that same behavior is recreate-able? My guess is that something got out of sync and that you could fix each subscription by dropping and recreating it. – Sebastian Meine Sep 9 '13 at 14:53
  • Thanks for the reply, We've large number of conflicts exist between publisher and subscribers. Most of the conflicts are due to violation of constraints(primary key), I think we can avoid these conflicts in two ways. 1. Remove the primary key from replicated tables, Would you please let me know is it a good practice? 2. By using EXEC sp_changemergearticle(set value of 'compensate_for_errors' to true) Please suggest which one of above is better option? – nadeem Sep 9 '13 at 17:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.