อาการ
ลองทำตามสถานการณ์ต่อไปนี้:
- สมมติว่า คุณมีตารางที่แบ่งพาร์ติชันใน 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 ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์