תופעות
נניח שאתה משתמש בשכפול מיזוג שהמפרסם פועל בו ב-Microsoft SQL Server 2012 או ב-SQL Server 2012 Service Pack 1 (SP1). לאחר שדרוג המפרסם ל-SQL Server 2012 Service Pack 2 (SP2), אין באפשרותך להפעיל מחדש את סוכן המיזוג. בנוסף, אתה מקבל את השגיאה הבאה:
תהליך המיזוג לא הצליח לבצע ניקוי מטה-נתונים מבוסס שמירה במסד נתונים ' MergePub '. אם כשל זה נמשך, נסה להגדיל את פסק הזמן של השאילתה עבור תהליך זה, או נסה לצמצם את תקופת השמירה. בעת פתרון בעיות, הפעל מחדש את הסינכרון באמצעות רישום היסטוריה verbose וציין קובץ פלט שאליו ברצונך לכתוב.
בעת ביצוע ההליך המאוחסן הsp_mergemetadataretentioncleanup באופן ידני במפרסם, הפרוצדורה המאוחסנת נכשלת ואתה מקבל את השגיאה הבאה:
Msg 206, רמה 16, מדינה 2, הליך sp_mergemetadataretentioncleanup, Line 63Operand type התנגשות: bigint אינו תואם ל-uniqueidentifierMsg 206, רמה 16, מדינה 2, הליך sp_mergemetadataretentioncleanup, שורה 65Operand סוג התנגשות: int אינה תואמת ל-uniqueidentifier
פתרון
הבעיה נפתרה לראשונה בעדכון המצטבר הבא של SQL Server.
עדכון מצטבר 3 עבור SQL Server 2012 SP2 /en-us/help/3002049
כל עדכון מצטבר חדש עבור SQL Server מכיל את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו בעדכון המצטבר הקודם. עיין בעדכונים המצטברים האחרונים עבור SQL Server:
פתרון
כדי לעקוף בעיה זו, בצע את השאילתה הבאה במסד הנתונים המפורסם: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
מצב
Microsoft אישרה שזוהי בעיה במוצרי Microsoft המופיעים בסעיף "חל על".