Příznaky
Během synchronizace slučovací replikace v aplikaci Microsoft SQL Server 2008 a novějších verzích serveru SQL Server může dojít k selhání slučovacího agenta. Dále se zobrazí následující chybová zpráva:
Agent slučování selhal poté, co zjistil, že vyčištění metadat na základě uchovávání informací smazala metadata u odběratele pro změny, které ještě nebyly odeslány do aplikace Publisher. Předplatné je třeba znovu inicializovat (bez odeslání). (Zdroj: MSSQL_REPL, číslo chyby: MSSQL_REPL-2147199401) Získání nápovědy: http://help/MSSQL_REPL-2147199401
K tomuto problému může dojít z několika důvodů. To zahrnuje mnoho důvodů, které se očekávají za určitých okolností. Chcete-li zjistit, zda došlo k neočekávané chybě, prozkoumejte podrobnosti metadat, které jsou popsány v části Příčina.
Příčina
Příčinu tohoto problému naleznete v následujících systémových tabulkách účastníka:
-
dbo.sysMergeSubscriptions
-
dbo.MsMerge_Genhistory
Ujistěte se, že slučovací Agent již není synchronizovaná. Potom spusťte následující dotaz a prozkoumejte výsledky:
Vyberte sentgen z hodnoty SubscriberDB. dbo. Sysmergeodběry, kde pubid = subid a sentgen není null.Sloupec sentgen označuje nejstarší skupinu změn, které odběratel odeslal vydavateli. Je-li vráceno více hodnot, Prohlédněte si ostatní sloupce v tabulce dbo. Sysmergeodběry a ujistěte se, že prohlížíte metadata pro správnou publikaci. Dále použijte hodnotu, kterou tento dotaz vrátí v následujícím dotazu:
Vyberte prvních 20 * z položky SubscriberDB. dbo. MSmerge_genhistory kde generace > = sentgen_value pořadí podle generaceVýstup dotazu by měl vypadat takto:k chybě může dojít neočekávaně, jsou-li splněny všechny následující podmínky:
-
Hodnota ve sloupci generace v prvním řádku je o něco větší než hodnota sentgen v předchozím dotazu.
-
Hodnota ve sloupci genstatus je 4.
-
Hodnota ve sloupci changecount je 0.
Poznámka: Hodnota sloupce colDate prvního řádku je také obvykle mnohem starší než hodnota tohoto sloupce v ostatních řádcích.
Řešení
Chcete-li tento problém vyřešit, znovu inicializujte účastníka, který chybu vyrobil. V některých scénářích může být možné tento problém vyřešit bez úplné opakované inicializace. Informace o možném řešení získáte od oddělení podpory zákazníků společnosti Microsoft. Chcete-li předejít budoucím výskytům tohoto problému, použijte jednu z následujících oprav v závislosti na verzi serveru SQL Server.
Informace o kumulativní aktualizaci
SQL Server 2008
Na serveru SQL Server 2008 není Oprava tohoto problému k dispozici.
SQL Server 2008 R2 Service Pack 2
Oprava tohoto problému byla poprvé vydána kumulativní aktualizací 3. Další informace o tom, jak získat tento kumulativní aktualizační balíček pro SQL Server 2008 R2 Service Pack 2, získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
2754552 kumulativní aktualizační balíček 3 pro SQL Server 2008 R2 Service Pack 2Poznámka: Vzhledem k tomu, že sestavení jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení zahrnuté v předchozí opravě aktualizace SQL Server 2008 R2 Service Pack 2. Doporučujeme zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
2730301 sestavení serveru sql Server 2008 R2, které byly vydány po vydání aktualizace SQL Server 2008 R2 Service Pack 2
SQL Server 2012
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 4. Další informace o tom, jak získat tento kumulativní aktualizační balíček pro SQL Server 2012, získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
2758687 kumulativní aktualizační balíček 4 pro SQL Server 2012Poznámka: Vzhledem k tomu, že sestavení jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení zahrnuté v předchozím vydání opravy SQL Server 2012. Doporučujeme zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
2692828 sestavení serveru sql Server 2012, která byla vydána po vydání produktu SQL Server 2012
SQL Server 2008 R2 Service Pack 1
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 8. Další informace o tom, jak získat tento kumulativní aktualizační balíček pro SQL Server 2008 R2 Service Pack 1, získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
2723743 kumulativní aktualizační balíček 8 pro SQL Server 2008 R2 SP1Poznámka: Vzhledem k tomu, že sestavení jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení zahrnuté v předchozí opravě aktualizace SQL Server 2008 R2 Service Pack 1. Doporučujeme zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
2567616 sestavení serveru sql Server 2008 R2, která byla vydána po vydání serveru SQL Server 2008 R2 SP1