KB2733630 - قد يفشل عامل الدمج أثناء مزامنة النسخ المتماثل للدمج في SQL Server

ينطبق على
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Parallel Data Warehouse SQL Server 2008 R2 Standard SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup SQL Server 2008 Standard SQL Server 2008 Web SQL Server 2008 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use)

الأعراض

أثناء مزامنة النسخ المتماثل للدمج في Microsoft SQL Server 2008 والإصدارات الأحدث من SQL Server، قد يفشل عامل الدمج. بالإضافة إلى ذلك، ستتلقى رسالة الخطأ التالية:

ملاحظة

فشل عامل الدمج بعد اكتشاف أن تنظيف بيانات التعريف المستند إلى الاستبقاء قد حذف بيانات التعريف لدى المشترك للتغييرات التي لم يتم إرسالها بعد إلى الناشر. يجب إعادة تهيئة الاشتراك (بدون تحميل). (المصدر: MSSQL_REPL، رقم الخطأ: MSSQL_REPL-2147199401)

الحصول على تعليمات: http://help/MSSQL_REPL-2147199401

قد تحدث هذه المشكلة لأسباب متعددة. وتشمل هذه الأسباب العديد من الأسباب المتوقعة في ظل ظروف معينة. لتحديد ما إذا كنت قد واجهت هذا الخطأ بشكل غير متوقع، افحص تفاصيل بيانات التعريف الموضحة في قسم "السبب".

السبب

يمكن العثور على سبب هذه المشكلة في جداول النظام التالية الخاصة بالمشترك:

  • dbo.sysMergeSubscriptions
  • dbo. MsMerge_Genhistory

تأكد من أن عامل الدمج لم يعد تتم مزامنته. ثم قم بتشغيل الاستعلام التالي، وفحص النتائج:

حدد sentgen من SubscriberDB.dbo.sysMergeSubscriptions حيث pubid = subid وsentgen ليست فارغة

نتائج الاستعلام

يمثل عمود sentgen أقدم مجموعة من التغييرات التي أرسلها المشترك إلى الناشر. إذا تم إرجاع قيم متعددة، فافحص الأعمدة الأخرى في الجدول dbo.sysMergeSubscriptions للتأكد من عرض بيانات التعريف الخاصة بالمنشور الصحيح. بعد ذلك، استخدم القيمة التي يرجعها هذا الاستعلام في الاستعلام التالي:

تحديد أفضل 20 * من SubscriberDB.dbo.MSmerge_genhistory حيث الجيل >= sentgen_value ترتيب حسب الجيليجب أن تشبه إخراج الاستعلام ما يلي:

نتيجة الاستعلام حسب الجيل

قد تواجه هذا الخطأ بشكل غير متوقع عندما تكون كل الحالات التالية صحيحة:

  • إن القيمة في عمود "التوليد " في الصف الأول أكبر بقليل من قيمة sentgen في الاستعلام السابق.
  • القيمة في عمود genstatus هي 4.
  • القيمة في عمود عدد التغيير هي 0.

ملاحظة كما أن قيمة عمود الترتيب في الصف الأول هي أيضا عادة أقدم بكثير من قيمة ذلك العمود في الصفوف الأخرى.

الدقة

لحل هذه المشكلة، أعد تهيئة المشترك الذي أنتج الخطأ.

في بعض السيناريوهات، قد تتمكن من حل هذه المشكلة من دون إعادة تهيئة كاملة. اتصل بخدمات دعم عملاء Microsoft للحصول على معلومات حول حل بديل محتمل.

لمنع تكرار هذه المشكلة في المستقبل، قم بتطبيق أحد الإصلاحات التالية، استنادا إلى إصدار SQL Server الخاص بك.

معلومات التحديث التراكمي

SQL Server 2008

لا يوجد أي حل لهذه المشكلة في SQL Server 2008.

SQL Server 2008 R2 حزمة الخدمة 2

تم إصدار تصحيح لهذه المشكلة لأول مرة في التحديث التراكمي 3. لمزيد من المعلومات حول كيفية الحصول على حزمة التحديث التراكمي هذه ل SQL Server 2008 R2 Service Pack 2، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":

2754552 حزمة التحديث التراكمي 3 ل SQL Server 2008 R2 Service Pack 2
 ملاحظة نظرا لأن الإصدارات تراكمية، يحتوي كل إصدار إصلاح جديد على جميع الإصلاحات العاجلة وجميع إصلاحات الأمان التي كانت مضمنة في إصدار إصلاح حزمة الخدمة 2 من SQL Server 2008 R2. نوصي بتطبيق أحدث إصدار تصحيح يحتوي على هذا الإصلاح العاجل في الاعتبار. للمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":

2730301 إصدارات SQL Server 2008 R2 التي تم إصدارها بعد إصدار SQL Server 2008 R2 Service Pack 2

SQL Server 2012

تم إصدار تصحيح لهذه المشكلة لأول مرة في التحديث التراكمي 4. لمزيد من المعلومات حول كيفية الحصول على حزمة التحديث التراكمي هذه ل SQL Server 2012، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":

2758687 حزمة التحديث التراكمي 4 ل SQL Server 2012
 ملاحظة نظرا لأن الإصدارات تراكمية، يحتوي كل إصدار إصلاح جديد على كل الإصلاحات العاجلة وكل إصلاحات الأمان التي كانت مضمنة في إصدار تصحيح SQL Server 2012 السابق. نوصي بتطبيق أحدث إصدار تصحيح يحتوي على هذا الإصلاح العاجل في الاعتبار. للمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":

2692828 إصدارات SQL Server 2012 التي تم إصدارها بعد إصدار SQL Server 2012

حزمة الخدمة 1 ل SQL Server 2008 R2

تم إصدار تصحيح هذه المشكلة لأول مرة في التحديث التراكمي 8. لمزيد من المعلومات حول كيفية الحصول على حزمة التحديث التراكمي هذه ل SQL Server 2008 R2 Service Pack 1، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":

2723743 حزمة التحديث التراكمي 8 ل SQL Server 2008 R2 SP1Note نظرا لأن الإصدارات تراكمية، يحتوي كل إصدار إصلاح جديد على جميع الإصلاحات العاجلة وكل إصلاحات الأمان التي كانت مضمنة في إصدار إصلاح SQL Server 2008 R2 Service Pack 1 السابق. نوصي بتطبيق أحدث إصدار تصحيح يحتوي على هذا الإصلاح العاجل في الاعتبار. للمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":

2567616 إصدارات SQL Server 2008 R2 التي تم إصدارها بعد إصدار SQL Server 2008 R2 SP1