Triệu chứng
Giả sử bạn bật một tính năng như Nhóm Tính sẵn sàng AlwaysOn sử dụng vùng nhật ký trong phiên bản của Microsoft SQL Server 2012 hoặc Microsoft SQL Server 2014. Trong trường hợp này, bộ đếm ghi nhật ký chờ cho bộ đệm nhật ký trên phiên bản SQL Server có giá trị cao. Bạn cũng sẽ nhận thấy các giá trị cao cho loại chờ CMEMTHREAD và WRITELOG trong chế độ xem quản lý động (DMV). Ngoài ra, các tệp kết xuất mini cũng được tạo.
Lưu ý: Vùng nhật ký là bộ nhớ đệm ẩn trong bộ nhớ của nhật ký giao dịch. Bộ đệm ẩn này được sử dụng, trong số nhiều thứ khác: để tối ưu hóa việc đọc nhật ký trong quá trình phục hồi, các thao tác quay lui trong quá trình sao chép giao dịch, và cho tính năng Nhóm tính sẵn sàng AlwaysOn.
Nguyên nhân
Sự cố này xảy ra vì vùng nhật ký sử dụng một con trỏ toàn cục trỏ tới một đối tượng bộ nhớ (PMO) cho tất cả cơ sở dữ liệu.
Khi nhiều luồng tìm cách ghi nhật ký bằng cách sử dụng vùng nhật ký, tất cả luồng phải đợi con trỏ trỏ tới một đối tượng bộ nhớ, dẫn đến việc tranh chấp được mô tả trong phần Triệu chứng.
Giải pháp
SQL Server 2014 Gói Dịch vụ 1
Theo mặc định, Gói dịch vụ 1 cho SQL Server 2014 bao gồm bản sửa lỗi này và bạn không phải thêm bất cứ cờ theo dõi nào để bật bản sửa lỗi.
SQL Server 2014
Sự cố này đã được khắc phục trong phiên bản RTM của SQL Server 2014, nhưng bạn vẫn cần bật cờ theo dõi T9024 và/hoặc 8048 để kích hoạt bản sửa lỗi. Sau khi bạn bật cờ theo dõi này, phiên bản SQL Server phân vùng con trỏ đến một đối tượng bộ nhớ ở cấp nút.
Ghi chú
- Nếu các sự cố vẫn tiếp diễn ngay cả sau khi bật cờ theo dõi T9024, bạn cũng có thể bật cờ theo dõi T8048 phân vùng con trỏ tới đối tượng bộ nhớ ở cấp độ CPU.
- SQL Server 2014 Gói dịch vụ 1 (SP1) có bản sửa lỗi này và bạn không phải bật cờ theo dõi.
SQL Server 2012
Lưu ý: SQL Server 2012 Gói Dịch vụ 3 (SP3) có bản sửa lỗi này và bạn không phải bật cờ theo dõi.
Thông tin cập nhật tích lũy
Bản cập nhật tích lũy 3 cho SQL Server 2012 SP1
Bản sửa lỗi cho sự cố này được phát hành lần đầu trong Cập nhật Tích lũy 3. Để biết thêm thông tin về cách lấy gói cập nhật tích lũy này cho SQL Server 2012 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:
2812412 Gói cập nhật tích lũy 3 cho SQL Server 2012 Gói Dịch vụ 1Lưu ý Vì các bản dựng được tích lũy, mỗi bản phát hành bản sửa lỗi mới đều chứa tất cả các hotfix và tất cả bản sửa lỗi bảo mật có trong bản phát hành bản sửa lỗi SQL Server 2012 SP1 trước đó. Chúng tôi khuyên bạn nên cân nhắc áp dụng bản phát hành bản sửa lỗi gần đây 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:
2772858 Các bản dựng SQL Server 2012 được phát hành sau khi SQL Server 2012 Gói Dịch vụ 1 được phát hànhLưu ý Sau khi áp dụng hotfix, bạn phải bật cờ theo dõi T9024 để kích hoạt bản sửa lỗi. Sau khi bạn bật cờ theo dõi này, phiên bản SQL Server phân vùng con trỏ đến một đối tượng bộ nhớ ở cấp nút.
Lưu ý Nếu các sự cố vẫn tiếp diễn ngay cả sau khi bật cờ theo dõi T9024, bạn cũng có thể bật cờ theo dõi T8048 phân vùng con trỏ tới đối tượng bộ nhớ ở cấp độ CPU.
Thông tin hotfix
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ữ đó.
Điều kiện tiên quyết cho SQL Server 2012
Để áp dụng hotfix này, bạn phải cài đặt SQL Server 2012 SP1 trên máy tính.
Yêu cầu khởi động lại
Bạn không phải khởi động lại máy tính sau khi áp dụng hotfix này. SQL Server phải được khởi động lại với cờ theo dõi T9024. Để biết thêm thông tin về cách đặt cấu hình SQL Server bằng cách sử dụng cờ theo dõi khởi động, hãy xem các Tùy chọn Khởi động Dịch vụ của Bộ máy Cơ sở dữ liệu.
Thông tin tệp
Phiên bản hotfix chung của phiên bản này có các thuộc tính tệp (hoặc thuộc tính tệp cao hơn) được liệt kê trong bảng sau. Ngày và giờ của các tệp này được liệt kê theo Giờ Chuẩn Quốc tế (UTC). Khi bạn xem thông tin về tệp, tệp đó đã được chuyển đổi thành giờ địa phương. Để xem sự khác biệt giữa UTC và giờ địa phương, hãy sử dụng tab Múi giờ trong mục Ngày và giờ trong Panel điều khiển.