Symptomy
Załóżmy, że używasz replikacji scalającej, która jest uruchomiona przez wydawcę w programie Microsoft SQL Server 2012 lub SQL Server 2012 z dodatkiem Service Pack 1 (SP1). Po uaktualnieniu wydawcy do programu SQL Server 2012 z dodatkiem Service Pack 2 (SP2) nie można uruchomić ponownie agenta scalania. Ponadto jest wyświetlany następujący komunikat o błędzie:
Proces scalania nie może wykonać oczyszczania metadanych opartego na zatrzymaniu w bazie danych "MergePub". Jeśli ten błąd będzie nadal występował, spróbuj zwiększyć limit czasu zapytania dla tego procesu lub spróbuj skrócić okres przechowywania. Podczas rozwiązywania problemów ponownie uruchom synchronizację z pełnym rejestrowaniem historii i określ plik wyjściowy, do którego chcesz pisać.
Po ręcznym wykonaniu procedury składowanej sp_mergemetadataretentioncleanup na wydawcy procedura składowana kończy się niepowodzeniem i jest wyświetlany następujący komunikat o błędzie:
Msg 206, poziom 16, stan 2, sp_mergemetadataretentioncleanup procedury, 63Operand liniowa: bigint jest niezgodna z uniqueidentifierMsg 206, poziom 16, stan 2, sp_mergemetadataretentioncleanup procedury, konflikt typu 65Operand wiersza: int jest niezgodna ze identyfikatorem
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Zbiorcza aktualizacja 3 dla programu SQL Server 2012 z dodatkiem SP2 /en-us/help/3002049
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Obejście
Aby obejść ten problem, wykonaj następujące zapytanie w opublikowanej bazie danych:if exists (select * from sys.columns sc inner join sys.types st on sc.system_type_id = st.system_type_id where object_id = object_id('dbo.sysmergesubscriptions') and sc.name = 'last_local_recgen' and st.name = 'uniqueidentifier') begin alter table dbo.sysmergesubscriptions drop column last_local_recgen alter table dbo.sysmergesubscriptions add last_local_recgen bigint null end
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".