Problembeschreibung
Angenommen, Sie verwenden die Mergereplikation, die der Herausgeber auf Microsoft SQL Server 2012 oder SQL Server 2012 Service Pack 1 (SP1) ausführt. Nachdem Sie den Verleger auf SQL Server 2012 Service Pack 2 (SP2) aktualisiert haben, können Sie den Merge-Agent nicht erneut starten. Darüber hinaus erhalten Sie die folgende Fehlermeldung:
Der Zusammenführungsprozess konnte keine Aufbewahrungs basierte Metadaten-Bereinigung in der Datenbank "MergePub" ausführen. Wenn dieser Fehler weiterhin auftritt, versuchen Sie, das Abfragetimeout für diesen Prozess zu erhöhen, oder versuchen Sie, den Aufbewahrungszeitraum zu verringern. Starten Sie bei der Problembehandlung die Synchronisierung mit der ausführlichen Verlaufsprotokollierung neu, und geben Sie eine Ausgabedatei an, in die geschrieben werden soll.
Wenn Sie die gespeicherte Prozedur sp_mergemetadataretentioncleanup manuell auf dem Verleger ausführen, schlägt die gespeicherte Prozedur fehl, und es wird die folgende Fehlermeldung angezeigt:
Msg 206, Ebene 16, Zustand 2, Prozedur sp_mergemetadataretentioncleanup, 63Operand Typ des Konflikts: bigint ist inkompatibel mit uniqueidentifierMsg 206, Ebene 16, Zustand 2, Prozedur sp_mergemetadataretentioncleanup, Zeile 65Operand Typ Clash: int ist mit uniqueidentifier nicht kompatibel
Fehlerbehebung
Das Problem wurde zuerst im folgenden kumulativen Update von SQL Server behoben.
Kumulatives Update 3 für SQL Server 2012 SP2 /en-us/help/3002049
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Problemumgehung
Um dieses Problem zu umgehen, führen Sie die folgende Abfrage für die veröffentlichte Datenbank aus: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
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.