Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Triệu chứng

Khi bạn dùng phản ánh cơ sở dữ liệu trong Microsoft SQL Server 2012 hoặc Microsoft SQL Server 2014, bạn có thể nhấn vào điều kiện khẳng định và phản ánh cơ sở dữ liệu vào trạng thái tạm ngừng.

Nguyên nhân

Sự cố xảy ra vì, khi đã phân bổ một trang mới, SQL Server sẽ liên quan đến khóa X trên trang mới. SQL Server sẽ đưa vào hobt_id (ID heap hoặc B-Tree) mà trang mới thuộc vào yêu cầu khóa. Tuy nhiên, SQL Server không thể đặt hobt_id trong mục Nhật ký phản chiếu và kết quả trong hành vi khóa khác nhau giữa chính và hình máy. Điều này có thể được giải thích chi tiết như sau:

  1. T1 giữ một khóa IX trên trang P1.

  2. T2 đã chia tách trang trên P1, phân bổ trang mới P2, TX giao dịch hệ thống được dùng ở đây, nó giữ một khóa X trên P2. Đây là SQL Server không đặt hobt_id trong Nhật ký phản ánh.

  3. TX không di chuyển khóa cho T1 để di chuyển khóa IX từ P1 đến P2.

  4. TX đã cam kết, bây giờ T2 có thể sử dụng trang P2 và T2 có được khóa IX khác trên trang P2.

  5. T1 cam kết, bây giờ T2 là người duy nhất giữ một chiếc IX Lock trên P2.

  6. Sau khi có nhiều chèn, một leo thang khóa diễn ra, trên chính, T2 sẽ phát hành IX trên P2, nhưng trên gương, trong khi khóa leo thang, T2 không phát hành khóa IX.

  7. Sau khi rất nhiều xóa, trang P2 trở thành trống và được deallocated.

  8. T3 cần một trang mới, và nó sẽ xảy ra để phân bổ P2, điều này đòi hỏi phải có khóa X nhưng trên gương, bước này không thành công vì bước 6.

Trên gương, bước 6 sẽ không phát hành các khóa IX vì hobt_id trong khối khóa không chính xác. Điều này không chính xác hobt_id đến trong bước 2 và vì SQL Server không đặt hobt_id trong Mirroring log. thông thường bạn không thấy bất kỳ vấn đề nào vì TX trong bước 2 là rất ngắn, và khối khóa với hobt_id không chính xác sẽ được phát hành khi nó cam kết. Tuy nhiên, vì khóa di chuyển trong Step3 và các bước sau đây (4 và 5), khóa này chặn với hobt_id không chính xác được giữ nguyên và cuối cùng cũng gây ra sự cố. Chính không có vấn đề này vì nó dùng hobt_id chính xác trong bước 2. Nhưng bản ghi nhật ký không có hobt_id chính xác.

Mỗi bản Cập Nhật tích lũy mới cho SQL Server chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản Cập Nhật tích lũy trước đó. Kiểm tra các bản Cập Nhật tích lũy mới nhất cho SQL Server:

Cách giải quyết

Để giải quyết vấn đề này, hãy khởi tạo lại nhân bản để kết thúc trạng thái bị tạm ngừ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".

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×