Tuesday, March 20, 2012

Run sp_resyncmergesubscription to solve un-sync data problem between subscribers and Publisher

Hello,

I have set up a merge replication with 4 subscribers and a publisher on SS05 sp2 on 5 window servers. After running my application on the replication with big data for a while, the data in some of tables of subscriber are out of sync from the publisher. I tried to run sp_resyncmergesubscription to fix the problem according to http://doc.ddart.net/mssql/sql2000/html/replsql/replmon_9pwh.htm. The procedure run successfully. However, the problem is still exist.

Does anyone else have this problem. Please help!

Did you try @.resync_type = 0

When you ran sp_resyncmergesubscription procedure and @.resync_type = 0 is intense operation...

|||

I tried with @.resync_type = 2.

Here is the script I have run at the Publisher:

exec sp_resyncmergesubscription NULL, NULL, 'ds3263a', 'red-dalmssql103', 'ds3263c',2, '2007-04-06 10:00:00.000'

|||

What tables are out of sync?

Do you have filtering? Is the data same for all subscribers?

Do you have any user triggers on tables?

|||

It might have more than one table out of sync. However, I know for sure one user table is out of sync between subscribers. The data in the table, rn_schedule_task, is in sync status between publisher and owning subscriber. For example,

Table – rn_schedule_task:

TaskID

Status

1

succeeded

2

running

3

failed

The status of task 1 showing as “succeeded” on publisher and owning subscriber, but showing as “running” on other subscriber(s).

We do not have any user triggers on the table that I know.

|||

I am not sure how you have gotten into this situation.

But for the rows that are different, you could dummy update these rows.

You could do: update m_schedule_task set Status=Status where TaskID=<task ID of the row that is out of sync>

Then run the merge agent and hopefully it should converge this time.

No comments:

Post a Comment