Triệu chứng
Hãy cân nhắc các trường hợp sau:
- Giả sử bạn có bảng được phân vùng trong Microsoft SQL Server và chúng là một phần của Thay đổi Dữ liệu Ghi nhận (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.
Lưu ý
Ngày/Giờ ***Kết xuất Xếp chồng được gửi đến FilePath\FileName
Ngày/Giờ SqlDumpExceptionHandler: ProcessID đã tạo ra 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:
Ngày/Giờ *
Ngày/Giờ *
Ngày/Giờ *
Ngày/Giờ *
Ngày/Giờ * Địa chỉ Ngoại lệ = 000007FEE724BD80 Module(sqllang+00000000015BBD80)
Ngày/Giờ * Mã Ngoại lệ = c0000005 EXCEPTION_ACCESS_VIOLATION
Ngày/Giờ * Đã xảy ra Vi phạm Truy nhập khi đọc 000000000000002A
Ngày/Giờ * Bộ đệm Nhập 70 byte
Ngày/Giờ * sys.sp_MScdc_capture_job
Ngày/Giờ *
Lưu ý
Ngày/Giờ ***Kết xuất Xếp chồng được gửi đến FilePath\FileName
Ngày/Giờ SqlDumpExceptionHandler: Process PID generated fatal exception 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:
Ngày/Giờ * Ngày/GiờPID
Ngày/Giờ *
Ngày/Giờ *
Ngày/Giờ * Địa chỉ Ngoại lệ = 000007FEE9D26640 Module(sqllang+0000000001586640)
Ngày/Giờ * Mã Ngoại lệ = c0000005 EXCEPTION_ACCESS_VIOLATION
Ngày/Giờ * Đã xảy ra Vi phạm Truy nhập khi đọc 000000000000002A
Ngày/Giờ * Bộ đệm Nhập 109 byte -
Ngày/Giờ * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
Ngày/Giờ * 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 c m s s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 00 26 04 04 f4
Ngày/Giờ * & & 01 00 00 00 00 26 04 04 00 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 26 04 04 00 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
Bản cập nhật tích lũy 5 cho SQL Server 2016 SP1
Bản cập nhật tích lũy 8 cho SQL Server 2014 SP2
Giới thiệu về các bản cập nhật tích lũy SQL Server:
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
Bản cập nhật tích lũy mới nhất cho SQL Server 2016
Bản cập nhật tích lũy mới nhất cho SQL Server 2014
Trạng thái
Microsoft đã xác nhận rằng đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong mục "áp dụng cho".
Tham khảo
Tìm hiểu về thuật ngữ mà Microsoft dùng để mô tả các bản cập nhật phần mềm.