KB4039089 - FIX: خطأ EXCEPTION_ACCESS_VIOLATION عند تنفيذ الإجراء المخزن sys.sp_MScdc_capture_job في SQL Server

ينطبق على
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2017 on Windows (all editions) SQL Server 2017 on Linux (all editions) 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 Standard - duplicate (do not use)

الأعراض

يُرجى مراعاة السيناريو التالي:

  • افترض أن لديك جداول مقسمة في Microsoft SQL Server وأنها جزء من Change Data تدوين (CDC) أو النسخ المتماثل للمعاملات. يمكنك تبديل القسم أو تبديله من هذه الجداول.
  • بعد تبديل القسم عند إجراء عمليات لغة معالجة البيانات (DML)، قد تلاحظ حدوث EXCEPTION_ACCESS_VIOLATION وإنشاء ملف تفريغ ذاكرة.

ملاحظة

التاريخ/الوقت ***تفريغ المكدس الذي يتم إرساله إلى FilePath\FileName
التاريخ/الوقت SqlDumpExceptionHandler: تم إنشاء ProcessID للاستثناء القاتل c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server إنهاء هذه العملية.
التاريخ/الوقت * *******************************************************************************
التاريخ/الوقت
التاريخ/الوقت * بدء تفريغ مكدس الذاكرة المؤقتة:
التاريخ/الوقت
التاريخ/الوقت
التاريخ/الوقت *
التاريخ/الوقت
التاريخ/الوقت * عنوان الاستثناء = الوحدة النمطية 0000007FEE724BD80 (sqllang+000000000015BBD80)
التاريخ/الوقت * رمز الاستثناء = c0000005 EXCEPTION_ACCESS_VIOLATION
التاريخ/الوقت * حدث انتهاك الوصول لعنوان القراءة 000000000000002A
التاريخ/الوقت * المخزن المؤقت للإدخال 70 بايت
التاريخ/الوقت * sys.sp_MScdc_capture_job
التاريخ/الوقت *

ملاحظة

التاريخ/الوقت ***تفريغ المكدس الذي يتم إرساله إلى FilePath\FileName
التاريخ/الوقت SqlDumpExceptionHandler: قامت عملية PID بإنشاء استثناء فادح c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server إنهاء هذه العملية.
التاريخ/الوقت * *******************************************************************************
التاريخ/الوقت *
التاريخ/الوقت * بدء تفريغ مكدس الذاكرة المؤقتة:
التاريخ/الوقت * التاريخ/TimeSPID
التاريخ/الوقت *
التاريخ/الوقت *
التاريخ/الوقت * عنوان الاستثناء = 000007FEE9D26640 Module(sqllang+0000000001586640)
التاريخ/الوقت * رمز الاستثناء = c0000005 EXCEPTION_ACCESS_VIOLATION
التاريخ/الوقت * حدث انتهاك الوصول لعنوان القراءة 000000000000002A
التاريخ/الوقت * مخزن الإدخال المؤقت 109 بايت -
التاريخ/الوقت * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00
التاريخ/الوقت * s p _ r e p 01 00 00 00 0b 00 73 00 70 00 5f 00 72 00 65 00 70 00
التاريخ/الوقت * l c m d s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 00 26 04 04 f4
التاريخ/الوقت * & & ÿ 01 00 00 00 00 26 04 04 00 00 00 00 00 00 00 26 04 04 ff
التاريخ/الوقت * ÿÿÿ ¥ & ff ff ff 00 00 a5 0a 00 00 00 00 00 00 26 04 04 8f 13 00
التاريخ/الوقت * & & ¡ 00 00 00 26 04 04 00 00 00 00 00 00 00 26 04 04 20 a1 07
التاريخ/الوقت * 00

  • إذا قمت بتشغيل الاستعلام التالي مقابل جدول الوجهة، فقد تلاحظ أنه سيتم وضع علامة على قيمة العمود is_replicated على أنها "1" للفهرس غير المجمع وهو غير صحيح.

select index_id, partition_number,* from sys.system_internals_partition_columns pc with(nolock)

JOIN sys.partitions p with(nolock)

ON p.partition_id = pc.partition_id

where p.object_id = object_id ('PartitionTable')

order by 2

الدقة

تم تصحيح هذه المشكلة في التحديثات التراكمية التالية SQL Server:

التحديث التراكمي 1 SQL Server 2017

التحديث التراكمي 5 SQL Server 2016 SP1

التحديث التراكمي 8 SQL Server 2014 SP2

حول التحديثات التراكمية SQL Server:

يحتوي كل تحديث تراكمي جديد SQL Server على جميع الإصلاحات العاجلة وجميع إصلاحات الأمان التي تم تضمينها مع التحديث التراكمي السابق. اطلع على آخر التحديثات التراكمية SQL Server:

آخر تحديث تراكمي SQL Server 2017

آخر تحديث تراكمي SQL Server 2016

آخر تحديث تراكمي SQL Server 2014

الحالة

لقد أكدت Microsoft على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".

المراجع

تعرّف على المصطلحات التي تستخدمها Microsoft لوصف تحديثات البرامج.