The merge process failed because it detected a mismatch between the replication metadata of the two replicas, such that some changes could be lost leading to non-convergence.

  • Hi,

    I have a publication that is (merge) replicated to multiple subscribers. One of the subscribers has not replicated within the metadata retention period (18 day period, not replicated for 45 days). My (inherited) SOP in this instance is to fudge sysmergesubscriptions.cleanedup_unsent_changes to 0, replicate the subscriber to upload any changes made locally, then reinitialise the subscriber.

    This works fine usually, but today one of my subscribers has failed with the error in the title. I have seen a possible solution on this thread at msdn: http://social.msdn.microsoft.com/Forums/br/sqlreplication/thread/ef104e7a-ff90-412b-aebb-4860425df047

    I'm reluctant to attempt to implement something that I'm not convinced I understand well enough. Does anyone have any experience of implementing this solution? Advice would be gratefully received.

    I'd be happy to hear any other suggestions for working around this particular problem in other ways.

    Regards, Iain

  • Can't help with the problem, but I would say it would help if you also put the full error message in your post.

  • As suggested by Lynn, full error message follows:

    Error messages:

    The merge process failed because it detected a mismatch between the replication metadata of the two replicas, such that some changes could be lost leading to non-convergence. This could be due to the subscriber not having synchronized within the retention period, or because of one of the replicas being restored to a backup older than retention period, or because of the publisher performing more aggressive cleanup on articles of type download-only and articles with partition_options = 3. (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147199363)

    Get help: http://help/MSSQL_REPL-2147199363

    The common generation watermark is invalid at this replica since it does not exist or metadata for changes not yet propagated may have been cleaned up. (Source: MSSQLServer, Error number: 21800)

    Get help: http://help/21800

  • I was facing the same error message. That is,

    The merge process failed because it detected a mismatch between the replication metadata of the two replicas, such that some changes could be lost leading to non-convergence.

    This could be due to the subscriber not having synchronized within the retention period, or because of one of the replicas being restored to a backup older than retention period.

    But now the error is:

    The Merge Agent failed after detecting that retention-based metadata cleanup has deleted metadata at the Subscriber for changes not yet sent to the Publisher. You must reinitialize the subscription (without upload). (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147199401)

    The scenario with me here is, I'v one Subscriber and Publisher. Publisher machine (Central Server) went down and was unavailable for more than 14 days. Meanwhile, application was running at Subscriber end and generating data on daily basis. Finally Publisher machine was fixed but the DB needs to be restored from last backup (one day before the Publisher went down)

    I'v noticed that at Central Server (Publisher) in sysmergesubscriptions table there are NULL values for all sentgen, sentguid, recgen and recguid for subid = pubid

    Thanks,

Viewing 4 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic. Login to reply