Symptom
Anta att du använder sammanslagningsreplikering i Microsoft SQL Server 2012 Service Pack 2 (SP2). När du rensar metadata genom att köra sp_mergemetadataretentioncleanup hos utgivaren kan metadata inte tas bort trots att alla prenumeranter nyligen har synkroniserats. I det här fallet kan synkroniseringstiden ökas avsevärt på grund av överflödig metadata.
Obs! Det finns ett null-värde i kolumnen last_local_recguid, eller så finns det en gammal generation i kolumnen last_local_recgen för vissa prenumeranter i tabellen sysmergesubscriptions på utgivarsidan.
Orsak
Det här problemet uppstår eftersom vissa ändringar har införts för att minska risken för icke-konvergens i rensningsproceduren för sammanfogade metadata. För att uppnå detta verifierar rensningen vilka generationer som fortfarande kan vara aktiva för att undvika ett scenario där de tas bort och sedan återinförs via en prenumerant som inte synkroniserar ofta. Den här identifieringsmekanismen kan undanta vissa generationer från rensningslistan även om de inte längre är inom kvarhållningsperioden. I vissa fall kan detta öka storleken på metadatatabellerna.
Lösning
Det här problemet åtgärdades först i följande kumulativa uppdatering av SQL Server.
Kumulativ uppdatering 1 för SQL Server 2014 SP1 /en-us/help/3067839
Kumulativ uppdatering 4 för SQL Server 2012 SP2 /en-us/help/3007556
Om kumulativa uppdateringar för SQL Server
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
- Senaste kumulativa uppdateringen för SQL Server 2014 SP1
- Senaste kumulativa uppdateringen för SQL Server 2012 SP2
Status
Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".