อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
สมมติว่า คุณมีตารางที่แบ่งพาร์ติชันใน Microsoft SQL Server และตารางเหล่านั้นเป็นส่วนหนึ่งของการเปลี่ยนแปลง Data Capture (CDC) หรือการจําลองแบบทรานแซคชัน คุณสลับเข้า หรือสลับออกพาร์ติชันจากตารางเหล่านี้
-
หลังจากการสลับพาร์ติชันเมื่อคุณดําเนินการ Data Manipulation Language (DML) คุณอาจสังเกตเห็นว่า EXCEPTION_ACCESS_VIOLATION เกิดขึ้น และแฟ้มการถ่ายโอนข้อมูลหน่วยความจําถูกสร้างขึ้น
วันที่/เวลา ***การถ่ายโอนข้อมูลสแตกถูกส่งไปยัง FilePath\FileName
Date/Time SqlDumpExceptionHandler: ProcessID สร้างข้อยกเว้นร้ายแรง c0000005 EXCEPTION_ACCESS_VIOLATION SQL Server กําลังยุติกระบวนการนี้ วันที่/เวลา * *********** วันที่/เวลา * เริ่ม การถ่ายโอนข้อมูลสแตก: วันที่/เวลา * วันที่/เวลา * วันที่/เวลา * วันที่/เวลา/เวลา * วันที่/เวลา * ที่อยู่ข้อยกเว้น = 000007FEE724BD80 Module(sqllang+0000000015BBD80) วันที่/เวลา * รหัสข้อยกเว้น = c0000005 EXCEPTION_ACCESS_VIOLATION Date/Time * การละเมิดการเข้าถึงเกิดขึ้นกับที่อยู่การอ่าน 000000000000002A วันที่/เวลา * บัฟเฟอร์ข้อมูลเข้า 70 ไบต์ วันที่/เวลา * sys.sp_MScdc_capture_job วันที่/เวลา *วันที่/เวลา ***การถ่ายโอนข้อมูลสแตกถูกส่งไปยัง FilePath\FileName
Date/Time SqlDumpExceptionHandler: กระบวนการ PID สร้างข้อยกเว้นร้ายแรง c0000005 EXCEPTION_ACCESS_VIOLATION SQL Server กําลังยุติกระบวนการนี้ วันที่/เวลา * *********** วันที่/เวลา * เริ่ม การถ่ายโอนข้อมูลสแตก: วันที่/เวลา * วันที่/เวลา วันที่/เวลา SPID * วันที่/เวลา * วันที่/เวลา * ที่อยู่ข้อยกเว้น = โมดูล 000007FEE9D26640(sqllang+0000000001586640) วันที่/เวลา * รหัสข้อยกเว้น = c0000005 EXCEPTION_ACCESS_VIOLATION วันที่/เวลา * การละเมิดการเข้าถึงเกิดขึ้นในที่อยู่การอ่าน 0000000000002A วันที่/เวลา * การใส่บัฟเฟอร์ 109 ไบต์ - วันที่/เวลา * 16 00 00 00 00 12 00 00 00 02 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 Date/Time * l 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 0 0 26 04 04 00 00 00 00 00 00 26 04 04 ff Date/Time * ÿÿÿ ¥ & ff ff ff 00 00 a5 0a 00 00 00 00 00 26 04 04 8f 13 00 Date เวลา * & & 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
แต่ละปรับปรุงสะสมใหม่สําหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการปรับปรุงสะสมก่อนหน้านี้ ดูการอัปเดตแบบสะสมล่าสุดสําหรับ SQL Server:
การอัปเดตสะสมล่าสุดสําหรับ SQL Server 2017
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
อ้างอิง
เรียนรู้เกี่ยวกับ คําศัพท์ที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์