Khắc phục: "quá trình này có thể không thực hiện" thông báo lỗi khi bạn đặt một giá trị khác không tham số MaxCmdsInTran của nhân viên đọc Nhật ký trong SQL Server 2008 R2 hoặc SQL Server 2012

Áp dụng cho: Microsoft SQL Server 2008 R2 Service Pack 1

Microsoft phân phối Microsoft SQL Server 2008 R2 gói dịch vụ 1 (SP1) hoặc Microsoft SQL Server 2012 khắc phục trong một tập tin có thể tải xuống. Bởi vì các bản sửa lỗi tích lũy, mỗi bản phát hành mới chứa tất cả các hotfix và tất cả bản Cập Nhật bảo mật được đính kèm với trước SQL Server 2008 R2 gói dịch vụ 1 (SP1) hoặc Microsoft SQL Server 2012 Cập Nhật phát hành.

Triệu chứng


Hãy xem xét tình huống sau:
  • Bạn tạo hai ấn phẩm nhân bản giao dịch dựa trên một cơ sở dữ liệu trong Microsoft SQL Server 2008 R2 hoặc trong Microsoft SQL Server 2012.
  • Xuất bản từng có ít nhất một bài viết. Bài viết trùng lặp, và mỗi bài viết thuộc một ấn phẩm.
  • Bạn đặt thuộc tính @sync_method của các ấn phẩm đồng thời.
  • Bạn đặt thuộc tính @immediate_sync của các ấn phẩm đúng.
  • Bạn đặt tham số MaxCmdsInTran của nhân viên đọc đăng nhập một giá trị khác không.
  • Một trong các ấn phẩm được nhiều chèn một giao dịch.
  • Sau khi giao dịch được cam kết, nhân đọc Nhật ký khởi động xử lý và tách các giao dịch theo số MaxCmdsInTran .
  • Đại lý ảnh chụp trên một ấn phẩm khởi động trước khi nhân viên đọc Nhật ký kết thúc tác vụ.
Trong trường hợp này, nhân viên đọc đăng nhập không thành công và bạn nhận được thông báo lỗi sau:
Quá trình này có thể không thực hiện 'sp_MSadd_replcmds' trên 'server\instance'. (Nguồn: MSSQLServer, lỗi số: 1007) Không thể chèn hàng khoá trùng lặp trong đối tượng ' dbo. MSrepl_commands' chỉ số duy nhất 'ucMSrepl_commands'. (Nguồn: MSSQLServer, lỗi số: 1007)

Giải pháp


Thông tin Cập Nhật tích luỹ

SQL Server 2012

Sửa chữa cho vấn đề này lần đầu tiên phát hành tích lũy Update 1 cho SQL Server 2012. Để biết thêm thông tin về gói Cập Nhật tích luỹ này, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2679368 Bản Cập Nhật tích lũy gói 1 cho SQL Server 2012
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả bản vá bảo mật được đính kèm với trước SQL Server 2012 vá. Microsoft khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2692828 Bản dựng SQL Server 2012 đã được phát hành sau khi SQL Server 2012 được phát hành
Bạn phải áp dụng một hotfix SQL Server 2012 để cài đặt SQL Server 2012.

Bản Cập Nhật tích lũy gói 4 cho SQL Server 2008 R2 SP1

Sửa chữa cho vấn đề này lần đầu tiên được phát hành tích lũy Update 4. Để biết thêm thông tin về cách lấy gói Cập Nhật tích luỹ này dành cho SQL Server 2008 R2 SP1, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2633146 Bản Cập Nhật tích lũy gói 4 cho SQL Server 2008 R2 SP1
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả các bản vá bảo mật được đính kèm với trước SQL Server 2008 R2 SP1 vá. Chúng tôi khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2567616 SQL Server 2008 R2 Phiên bản được phát hành sau khi SQL Server 2008 R2 SP1

Cách giải quyết


Để khắc phục sự cố này, hãy sử dụng một trong các phương pháp sau:
  • Không đặt thuộc tính @sync_method Ấn phẩm để "đồng thời" và không đặt thuộc tính @immediate_sync Ấn phẩm "True".
  • Đặt giá trị tham số MaxCmdsInTran không.

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".