KB2733630 – Sammanslagningsagenten kan misslyckas under synkronisering av sammanslagningsreplikering i SQL Server

Gäller för
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Parallel Data Warehouse SQL Server 2008 R2 Standard SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup SQL Server 2008 Standard SQL Server 2008 Web SQL Server 2008 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use)

Symptom

Vid synkronisering av kopplingsreplikering i Microsoft SQL Server 2008 och senare versioner av SQL Server kan sammanslagningsagenten misslyckas. Dessutom visas följande felmeddelande:

Obs

Kopplingsagenten misslyckades efter att ha upptäckt att kvarhållningsbaserad metadatarensning har tagit bort metadata hos prenumeranten för ändringar som ännu inte har skickats till utgivaren. Du måste initiera om prenumerationen (utan uppladdning). (Källa: MSSQL_REPL, felnummer: MSSQL_REPL-2147199401)

Få hjälp: http://help/MSSQL_REPL-2147199401

Det här problemet kan uppstå av flera orsaker. Dessa inkluderar många orsaker som förväntas under vissa omständigheter. För att avgöra om du har stött på det här felet oväntat undersöker du metadatainformationen som beskrivs i avsnittet "Orsak".

Orsak

Orsaken till det här problemet finns i följande systemtabeller på abonnenten:

  • dbo.sysMergeSubscriptions
  • dbo. MsMerge_Genhistory

Kontrollera att sammanfogningsagenten inte längre synkroniserar. Kör sedan följande fråga och undersök resultatet:

välj sentgen från SubscriberDB.dbo.sysMergeSubscriptions där pubid = subid och sentgen är inte null

Frågeresultat

Kolumnen sentgen markerar den äldsta gruppen av ändringar som prenumeranten har skickat till utgivaren. Om flera värden returneras bör du undersöka de andra kolumnerna i tabellen dbo.sysMergeSubscriptions för att kontrollera att du visar metadata för rätt publikation. Använd sedan det värde som den här frågan returnerar i följande fråga:

select top 20 * from SubscriberDB.dbo.MSmerge_genhistory where generation >= sentgen_value order by generationUtdata från frågan bör se ut så här:

Frågeresultat efter generering

Du kan stöta på felet oväntat när alla följande villkor är sanna:

  • Värdet i genereringskolumnen på den första raden är något högre än sentgen-värdet i föregående fråga.
  • Värdet i kolumnen genstatus är 4.
  • Värdet i kolumnen för antal ändringar är 0.

Obs! Värdet i kolumnen kolumn för den första raden är vanligtvis mycket äldre än värdet för kolumnen på de andra raderna.

Lösning

Lös problemet genom att initiera om prenumeranten som utlöste felet.

I vissa fall kan du kanske lösa det här problemet utan en fullständig initiering. Kontakta Microsofts kundsupport om du vill ha information om en möjlig lösning.

För att förhindra framtida förekomster av det här problemet tillämpar du någon av följande korrigeringar, beroende på din version av SQL Server.

Information om kumulativ uppdatering

SQL Server 2008

Det finns ingen korrigering för det här problemet i SQL Server 2008.

SQL Server 2008 R2 Service Pack 2

Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 3. Om du vill veta mer om hur du hämtar det här kumulativa uppdateringspaketet för SQL Server 2008 R2 Service Pack 2 klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

2754552 kumulativt uppdateringspaket 3 för SQL Server 2008 R2 Service Pack 2
 Eftersom versionerna är kumulativa innehåller varje ny korrigeringsversion alla snabbkorrigeringar och säkerhetskorrigeringar som ingick i den tidigare SQL Server 2008 R2 Service Pack 2-korrigeringsversionen. Vi rekommenderar att du installerar den senaste snabbkorrigeringen som innehåller den här snabbkorrigeringen. Mer information om hur du åtgärdar det här problemet får du om du klickar på följande artikelnummer i Microsoft Knowledge Base:

2730301 SQL Server 2008 R2-versionerna som gavs ut efter att SQL Server 2008 R2 Service Pack 2 släpptes

SQL Server 2012

Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 4. Om du vill veta mer om hur du hämtar det här kumulativa uppdateringspaketet för SQL Server 2012 klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

2758687 Kumulativ uppdatering paket 4 för SQL Server 2012
 Eftersom versionerna är kumulativa innehåller varje ny korrigeringsversion alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare SQL Server 2012-korrigeringsversionen. Vi rekommenderar att du installerar den senaste snabbkorrigeringen som innehåller den här snabbkorrigeringen. Mer information om hur du åtgärdar det här problemet får du om du klickar på följande artikelnummer i Microsoft Knowledge Base:

2692828 De SQL Server 2012-versionerna som släpptes efter att SQL Server 2012 släpptes

SQL Server 2008 R2 Service Pack 1

Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 8. Om du vill veta mer om hur du hämtar det här kumulativa uppdateringspaketet för SQL Server 2008 R2 Service Pack 1 klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

2723743 Kumulativ uppdatering paket 8 för SQL Server 2008 R2 SP1Note Eftersom versionerna är kumulativa innehåller varje ny korrigeringsversion alla snabbkorrigeringar och säkerhetskorrigeringar som ingick i den tidigare SQL Server 2008 R2 Service Pack 1-korrigeringsversionen. Vi rekommenderar att du installerar den senaste snabbkorrigeringen som innehåller den här snabbkorrigeringen. Mer information om hur du åtgärdar det här problemet får du om du klickar på följande artikelnummer i Microsoft Knowledge Base:

2567616 De SQL Server 2008 R2-versionerna som släpptes efter att SQL Server 2008 R2 SP1 släpptes