FIX: Metadata cannot be removed at publisher and synchronization time increases when you use merge replication

Applies to: SQL Server 2012 DeveloperSQL Server 2012 EnterpriseSQL Server 2012 Standard More

Symptoms


Assume that you use Microsoft SQL Server 2012 Service Pack 2 (SP2) merge replication. When you clean up metadata by executing sp_mergemetadataretentioncleanup at the publisher, the metadata cannot be removed even though all subscribers have recently synchronized successfully. In this situation, the synchronization time can be increased significantly because of the excessive metadata.

Note There is a null value in the last_local_recguid column, or there is an old generation in the last_local_recgen column for some subscribers in the sysmergesubscriptions table at the publisher side.

Cause


This issue occurs because some changes are introduced to reduce the possibility of non-convergence in the merge metadata cleanup procedure. To achieve this, the cleanup validates which generations could still be active in order to avoid a scenario in which they are deleted and then reintroduced through a subscriber that does not synchronize frequently. This detection mechanism may exclude some generations from the cleanup list even though they are no longer within the retention period. In some cases, this may increase the size of the metadata tables.

Resolution


This issue was first fixed in the following cumulative update of SQL Server.

Cumulative Update 1 for SQL Server 2014 SP1

Cumulative Update 4 for SQL Server 2012 SP2

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.