KB3014867 - KHẮC PHỤC: Không thể phát hiện ngoại lệ "Lỗi phục hồi từ xa" và có khả năng mất dữ liệu khi bạn sử dụng SQL Server 2014

Áp dụng cho
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Triệu chứng

Giả sử rằng bạn bật Nhóm Bản sẵn sàng AlwaysOn trong phiên bản của Microsoft SQL Server 2014. Bạn thực hiện chuyển đổi dự phòng cho nhóm sẵn sàng trong khi bản sao chính có các giao dịch hiện hoạt. Sau đó, bạn nhận được thông báo cảnh báo 3303 như sau:

Lưu ý

Việc harden từ xa đối với giao dịch '%.*ls' (ID 0x%016I64x %ls) bắt đầu tại %S_DATE trong cơ sở dữ liệu '%ls' tại LSN %S_LSN không thành công.

Trong trường hợp này, các trình điều khiển dữ liệu hoặc nhà cung cấp sau đây không thể phát hiện ngoại lệ "khắc phục sự cố từ xa":

  • Microsoft JDBC Driver cho SQL Server 4.0
  • Trình điều khiển OLE DB cho SQL Server
  • SQL Server Native client cho OLE DB

Do đó, ứng dụng máy khách sử dụng các trình điều khiển hoặc nhà cung cấp này không biết rằng giao tác đang "nghi ngờ". Giao dịch "không nghi ngờ" có nghĩa là giao dịch đó có thể đã được cam kết và tăng cường vào đĩa thành công hoặc bị SQL Server hủy bỏ và quay lại. Nếu giao dịch "không nghi ngờ" này được quay lui, những trình điều khiển hoặc nhà cung cấp này vẫn có thể coi giao dịch là đã cam kết thành công vì họ không thể ghi lại ngoại lệ. Điều này có thể gây ra sự cố không nhất quán về dữ liệu ứng dụng.

Lưu ý: Các nhà cung cấp kết nối sau đây có thể ghi lại ngoại lệ "sự cố củng cố từ xa" cho các giao dịch "không nghi ngờ":

  • Trình điều khiển Microsoft ODBC cho SQL Server
  • SQL Server Native Client (ODBC)

      

Giải pháp

Sự cố này đã được khắc phục lần đầu trong bản cập nhật tích lũy tiếp theo của SQL Server.

Cập nhật Tích lũy 5 cho SQL Server 2014 /en-us/help/3011055

Giới thiệu về các bản cập nhật tích lũy cho SQL Server

Mỗi bản cập nhật tích lũy mới dành cho SQL Server chứa tất cả các bản sửa lỗi nóng và bản sửa lỗi bảo mật được tích hợp 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 cho SQL Server:

      

Thông tin hotfix hotfix này giới thiệu một cờ theo dõi mới 3923. Cờ theo dõi sẽ cho phép SQL Server trả về một ngoại lệ cho ứng dụng khi thông báo cảnh báo 3303 được đưa ra.

Sau khi áp dụng hotfix, bạn phải bật cờ theo dõi này để khắc phục sự cố này. Với hotfix và cờ theo dõi, ứng dụng cũng cần thực hiện mã xác thực để kiểm tra xem giao dịch được quay lui hay cam kết sau khi ghi lại ngoại lệ.

 Một hotfix được hỗ trợ luôn sẵn dùng từ Microsoft. Tuy nhiên, hotfix này chỉ nhằm mục đích khắc phục sự cố được mô tả trong bài viết này. Chỉ áp dụng hotfix này cho các hệ thống đang gặp phải sự cố cụ thể này.

Nếu hotfix sẵn có để tải xuống, sẽ có một phần "Hotfix Tải xuống Sẵn dùng" ở phía trên cùng của bài viết Cơ sở Kiến thức này. Nếu mục này không xuất hiện, hãy gửi yêu cầu đến Dịch vụ khách hàng và Hỗ trợ của Microsoft để tải hotfix.

Lưu ý Nếu phát sinh sự cố bổ sung hoặc nếu cần khắc phục sự cố thì có thể bạn phải tạo yêu cầu dịch vụ riêng. Chi phí hỗ trợ thông thường sẽ áp dụng đối với các vấn đề và câu hỏi hỗ trợ bổ sung không phù hợp với hotfix cụ thể này. Để biết danh sách đầy đủ các số điện thoại hỗ trợ và dịch vụ khách hàng của Microsoft hoặc để tạo một yêu cầu dịch vụ riêng biệt, hãy truy cập trang web sau của Microsoft:

/contactus/?ws=support Lưu ý: Biểu mẫu "Hotfix Tải xuống Sẵn dùng" sẽ hiển thị các ngôn ngữ cho hotfix khả dụng. Nếu bạn không thấy ngôn ngữ của mình thì đó là do không có hotfix cho ngôn ngữ đó.

Yêu cầu khởi động lạiBạn không phải khởi động lại máy tính sau khi áp dụng hotfix này.

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