Triệu chứng
Hãy xem xét tình huống sau:
-
Giả sử bạn đã phân vùng bảng trong Microsoft SQL Server và chúng là một phần của Thay đổi Thu thập Dữ liệu (CDC) hoặc Sao nhân bản Giao dịch. Bạn chuyển vào hoặc chuyển ra phân vùng từ những bảng này.
-
Sau khi chuyển đổi phân vùng khi bạn thực hiện thao tác Data Manipulation Language (DML), bạn có thể nhận thấy rằng một lỗi EXCEPTION_ACCESS_VIOLATION xảy ra và một tập tin kết xuất bộ nhớ được tạo ra.
Ngày/Giờ ***Stack Dump được gửi đến FilePath\FileName
Date/Time SqlDumpExceptionHandler: ProcessID đã tạo ngoại lệ gây tử vong c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server sẽ tái diễn quá trình này. Ngày/ Giờ * ** Ngày/ Giờ * BEGIN STACK DUMP: Date/Time * Date/Time * Date/Time * Date/Time * Date/Time * Exception Address = 000007FEE724BD80 Module(sqllang+00000000015BBD80) Date/Time * Exception Code = c00000005 EXCEPTION_ACCESS_VIOLATION Date/Time * Vi phạm Truy nhập xảy ra địa chỉ đọc 00000000000002A Ngày/ Giờ * Bộ đệm nhập 70 byte Ngày/ Giờ * sys.sp_MScdc_capture_jobNgày/ Giờ *Ngày/Giờ ***Stack Dump được gửi đến FilePath\FileName
Date/Time SqlDumpExceptionHandler: Process PID đã tạo ngoại lệ gây tử vong c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server sẽ tái diễn quá trình này. Ngày/Giờ * ***** Ngày/ Giờ * Ngày/ Giờ * BEGIN STACK DUMP: Date/Time * Date/TimeSPID Date/Time * Date/Time *Date/Time * Exception Address = 000007FEE9D26640 Module(sqllang+0000000001586640) Date/Time * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION Ngày/ Giờ * Vi phạm truy nhập xảy ra địa chỉ đọc 00000000000002A Ngày/ Giờ * Bộ đệm nhập 109 byte - Ngày/ Giờ * 16 00 00 00 12 00 00 00 00 02 00 00 00 00 00 00 Ngày/00 Thời gian * s p _ r e p 01 00 00 00 0b 00 73 00 70 00 5f 00 72 00 65 00 70 00 Ngày/ Giờ * l m m s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 26 04 04 f4 Ngày/ Giờ * & & cứ 01 00 00 00 00 00 00 26 04 04 00 00 00 00 00 00 26 04 04 ff Ngày/ Giờ * & ff ff ff 00 00 a5 0a 00 00 00 00 00 26 04 04 8f 13 00 Ngày/ Giờ * & & ¡ 00 00 00 00 26 04 04 00 00 00 00 00 26 04 04 20 a1 07 Ngày/Giờ * 00-
Nếu bạn chạy truy vấn sau đối với bảng đích thì bạn có thể nhận thấy rằng giá trị của cột is_replicated sẽ được đánh dấu là '1' đối với chỉ mục không liên cụm không chính xác.
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
Giải pháp
Sự cố này đã được khắc phục trong các bản cập nhật tích lũy sau đây SQL Server:
Bản cập nhật Tích lũy 1 cho SQL Server 2017
Mỗi bản cập nhật tích lũy mới dành cho SQL Server sẽ chứa tất cả các bản cập nhật nóng và tất cả các bản sửa lỗi bảo mật được bao gồm trong bản cập nhật tích lũy trước đó. Xem các bản cập nhật tích lũy mới nhất dành cho doanh SQL Server:
Bản cập nhật tích lũy mới nhất cho SQL Server 2017
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
Tham khảo
Tìm hiểu về thuật ngữ mà Microsoft sử dụngđể mô tả các bản cập nhật phần mềm.