Friday, March 23, 2012

Merge Replication Questions

1. When intitializing a new subscriber, data that is on the publisher is not being transferred to the new subscriber. Why?

2. Data that is already on the subscriber is not being uploaded to the publisher. Why?

3. When I perform a data validation, the validation fails, but there is no option to resolve the failure (ie, transfer data one way or the other). Why?

4. For the conflict resolver: I have a rowguid and a timestamp column on each article in the publication. It was my hope that by having the timestamp, I could avoid the need to manually reconcile the conflicts between publisher and subscriber. However, I see that the conflicts are still there and still require manual intervention to eliminate. Why?

5. Where is there additional documentation on the conflict resolver (such as what values to enter in the field "Enter information needed by the resolver")?

6. What is a "Local Subscriber"? As in the statement "Use the default merge resolver and create local Subscribers." as described in the "Choosing a Resolver" topic in SQL BOL.

7. What is a "Global Subscriber"? Same reference.

Sorry for all the ignorance. Replication is relatively new to me.

Regards,

hmscottAfter doing some research, here are some answers. Hopefully, most of them are correct :D .

1. When intitializing a new subscriber, data that is on the publisher is not being transferred to the new subscriber. Why?
In a horizontally partitioned merge article with dynamic filters (based on HOST_NAME(), you must add the -HostName parameter to the agent properties. In other words, HOST_NAME() is being used, but it's not as dynamic as you might think. This is apparently fixed in SQL 2005.

2. Data that is already on the subscriber is not being uploaded to the publisher. Why?
Same answer as above. Add the parameter, and then restart the synch process. If a snapshot has already been run, you may need to re-initialize the subscriber.

3. When I perform a data validation, the validation fails, but there is no option to resolve the failure (ie, transfer data one way or the other). Why?
Feature I suppose. Honestly, I don't recall the specifics of why the validation failed. It would probably just require redploying the whole replication process.

4. For the conflict resolver: I have a rowguid and a timestamp column on each article in the publication. It was my hope that by having the timestamp, I could avoid the need to manually reconcile the conflicts between publisher and subscriber. However, I see that the conflicts are still there and still require manual intervention to eliminate. Why?
First off, Merge Replication does NOT require a timestamp column (that's for transactional replication). Merge Replication only requires a ROWGUID (which must be the ROWGUIDCOL for the article). Second, the conflict resolver didn't work the way I expected it to: the conflict resolver works by using a default rule to resolve a conflict, but it still records the fact that a conflict occurred. The record of the conflict (and the winning and losing records) are stored (by default) at the distributor. Manual intervention is required (opening the conflict viewer) to view and eliminate the conflicts. But if you want to be alerted to the existence of a conflict, you must write a separate monitoring tool.

5. Where is there additional documentation on the conflict resolver (such as what values to enter in the field "Enter information needed by the resolver")?
I found some help here (http://www.replicationanswers.com/Merge.asp). There are some article about writing your own custom resolvers on MS's site.

6. What is a "Local Subscriber"? As in the statement "Use the default merge resolver and create local Subscribers." as described in the "Choosing a Resolver" topic in SQL BOL.
A local subscriber is one that is defined with a priority setting used in conflict resolution. The priority setting is from 1 to 99.

7. What is a "Global Subscriber"? Same reference.
A global subscriber has no priority and uses the distributor as the proxy for determining priority for conflict resolution.

Sorry for all the ignorance. Replication is relatively new to me.

This still remains true today. Though I have learned a fair amount in the months since I first wrote this.

Regards,

hmscott

No comments:

Post a Comment