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
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:
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