KB4039089 - การแก้ไข: 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 และเป็นส่วนหนึ่งของการเปลี่ยนแปลง Capture ข้อมูล (CDC) หรือการจําลองแบบทรานแซคชัน คุณสลับเข้า หรือสลับออกพาร์ติชันจากตารางเหล่านี้
  • หลังจากการสลับพาร์ติชันเมื่อคุณดําเนินการ Data Manipulation Language (DML) คุณอาจสังเกตเห็นว่า EXCEPTION_ACCESS_VIOLATION เกิดขึ้น และแฟ้มการถ่ายโอนข้อมูลหน่วยความจําถูกสร้างขึ้น

หมายเหตุ

วันที่/เวลา ***การถ่ายโอนข้อมูลสแตกถูกส่งไปยัง FilePath\FileName
วันที่/เวลา SqlDumpExceptionHandler: ProcessID สร้างข้อยกเว้นร้ายแรง c0000005 EXCEPTION_ACCESS_VIOLATION SQL Server กําลังยุติกระบวนการนี้
วันที่/เวลา * *******************************************************************************
วันที่/เวลา
วันที่/เวลา * เริ่มการถ่ายโอนข้อมูลสแตก:
วันที่/เวลา
วันที่/เวลา
วันที่/เวลา *
วันที่/เวลา
วันที่/เวลา * ที่อยู่ข้อยกเว้น = 000007FEE724BD80 Module(sqllang+00000000015BBD80)
วันที่/เวลา * รหัสข้อยกเว้น = c0000005 EXCEPTION_ACCESS_VIOLATION
วันที่/เวลา * การละเมิดการเข้าถึงเกิดขึ้น 000000000000002A ที่อยู่การอ่าน
วันที่/เวลา * บัฟเฟอร์การป้อนข้อมูล 70 ไบต์
วันที่/เวลา * sys.sp_MScdc_capture_job
วันที่/เวลา *

หมายเหตุ

วันที่/เวลา ***การถ่ายโอนข้อมูลสแตกถูกส่งไปยัง FilePath\FileName
วันที่/เวลา SqlDumpExceptionHandler: Process PID สร้างข้อยกเว้นร้ายแรง c0000005 EXCEPTION_ACCESS_VIOLATION SQL Server กําลังยุติกระบวนการนี้
วันที่/เวลา * *******************************************************************************
วันที่/เวลา *
วันที่/เวลา * เริ่มการถ่ายโอนข้อมูลสแตก:
วันที่/เวลา * วันที่/เวลา PID
วันที่/เวลา *
วันที่/เวลา *
วันที่/เวลา * ที่อยู่ข้อยกเว้น = 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 c m d s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 26 04 04 f4
วันที่/เวลา * & & ÿ 01 00 00 00 00 00 26 04 04 00 00 00 00 00 26 04 04 ff
วันที่/เวลา * ÿÿÿ ¥ & ff ff ff 00 00 a5 0a 00 00 00 00 00 26 04 04 8f 13 00
วันที่/เวลา * & & 00 00 00 26 04 04 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 ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์