Sümptomid
Oletagem, et kasutate kirjakooste replikatsiooni, mille Publisher töötab Microsoft SQL Server 2012 või SQL Server 2012 Service Pack 1 (SP1). Pärast seda, kui olete Publisheri versioonile SQL Server 2012 Service Pack 2 (SP2) üle saanud, ei saa te kooste agenti taaskäivitada. Lisaks kuvatakse järgmine tõrketeade:
Mestimise käigus ei saanud teostada andmebaasi "MergePub" säilitus-põhise metaandmete cleanup. Kui see tõrge jätkub, proovige suurendada selle protsessi päringu ajalõpu või Püüdke vähendada ooteaeg. Kui tõrkeotsing, taaskäivitage sünkroonimine verbose ajaloo logimise abil ja määrake väljundfaili, kuhu soovite kirjutada.
Kui täidate sp_mergemetadataretentioncleanup salvestatud protseduuri käsitsi Publisheris salvestatud protseduuri nurjub ja kuvatakse järgmine tõrketeade:
MSG 206, Level 16, State 2, protseduuri sp_mergemetadataretentioncleanup, rea 63Operand tüüp Clash: bigint ei ühildu uniqueidentifierMsg 206, Level 16, State 2, Procedure sp_mergemetadataretentioncleanup, Line 65Operand Type Clash: int ei ühildu ainuidentifikaatori
Lahendus
Probleem parandati esmakordselt SQL serveri järgmises koondvärskenduses.
Kumulatiivne värskendus 3 SQL Server 2012 SP2 jaoks /en-us/help/3002049
Iga uus koondvärskenduses SQL Server sisaldab kõiki käigultparandused ja kõik turvaparandusi, mis kuulusid eelmise koondvärskenduse. Vaadake SQL serveri kumulatiivseid värskendusi.
Lahendus
Selle probleemi lahendamiseks käivitage publitseeritud andmebaasis järgmine päring.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
Olek
Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.