Microsoft phân phối các bản sửa lỗi Microsoft SQL Server 2005, Microsoft SQL Server 2008 và Microsoft SQL Server 2008 R2 như một tệp có thể tải xuống. Vì các bản sửa lỗi được tích lũy, mỗi bản phát hành mới đều chứa toàn bộ bản sửa lỗi nóng và tất cả bản sửa lỗi bảo mật có trong bản phát hành SQL Server 2005, SQL Server 2008 hoặc SQL Server 2008 R2 trước đó.
Triệu chứng
Hãy cân nhắc các trường hợp sau:
- Bạn bật tùy chọn ALLOW_SNAPSHOT_ISOLATION trên cơ sở dữ liệu Microsoft SQL Server 2005, Microsoft SQL Server 2008 hoặc Microsoft SQL Server 2008 R2.
- Bạn thực hiện thao tác lập phiên bản trên bảng. Ví dụ: bạn cập nhật bảng.
- Bạn tắt mức độ tách biệt ảnh chụp nhanh trên cơ sở dữ liệu.
- Bạn cập nhật cột khóa chỉ mục trên bản ghi có chứa thông tin lập phiên bản.
- Bạn dựng lại chỉ mục trực tuyến trên bảng.
Trong tình huống này, lỗi xác nhận xảy ra và bạn nhận được thông báo sau trong nhật ký lỗi SQL Server:
Lưu ý
<Ngày Giờ><><spid> * BẮT ĐẦU KẾT XUẤT NGĂN XẾP:
<Ngày Giờ><><spid> *<Ngày Giờ><spid><>
<Ngày Giờ><><Spid> *
<Ngày giờ><><spid> * Địa điểm: AppendOnlyVerStoreMgr.cpp:731
<Ngày Giờ><><Spid> * Biểu thức: 0
<Ngày Giờ><><spid> * SPID:<spid>
<Ngày Giờ><><Spid> * ID Quy trình: 6328
<Ngày Giờ><><spid> * Mô tả: Không thể định vị bản ghi phiên bản và trang không được phân bổ. Trạng thái = 3
<Ngày Giờ><><Spid> *
<Ngày Giờ><><Spid> * Bộ đệm Đầu vào: 170 byte -
<Ngày Giờ><><spid> * ALTER INDEX Tên <Bảng> BẬT <Chỉ mục> REBUILD WITH(O
<Ngày Giờ><><spid> * NLINE = ON)
Nguyên nhân
Sự cố này xảy ra vì thông tin lập phiên bản cho bản ghi mới của phím chỉ mục được sao chép từ bản ghi cũ của khóa chỉ mục. Do đó, lỗi xảy ra khi chỉ mục được dựng lại.
Giải pháp
Thông tin cập nhật tích lũy
SQL Server 2008 R2
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 5. Để 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 2008 R2, 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:
2438347 Gói Cập nhật Tích lũy 5 cho SQL Server 2008 R2 Lư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 bản hotfix và tất cả bản sửa lỗi bảo mật được tích hợp trong bản phát hành bản sửa lỗi SQL Server 2008 R2 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:
981356 Các bản dựng SQL Server 2008 R2 được phát hành sau khi SQL Server 2008 R2 được phát hành
SQL Server 2005 Gói Dịch vụ 4
Bản sửa lỗi cho sự cố này được phát hành lần đầu trong Bản cập nhật Tích lũy 1 cho SQL Server 2005 Gói Dịch vụ 4. Để biết thêm thông tin về gói cập nhật tích lũy 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:
2464079 Gói cập nhật tích lũy 1 cho SQL Server 2005 Gói Dịch vụ 4Lư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 sửa lỗi SQL Server 2005 trước đó. Microsoft 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 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:
2485757 Các bản dựng SQL Server 2005 được phát hành sau khi SQL Server 2005 Gói Dịch vụ 4 được phát hành Các hotfix Microsoft SQL Server 2005 được tạo cho các gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng hotfix SQL Server 2005 Gói Dịch vụ 4 cho cài đặt SQL Server 2005 Gói Dịch vụ 4. Theo mặc định, mọi hotfix được cung cấp trong gói dịch vụ SQL Server sẽ được đưa vào gói dịch vụ SQL Server tiếp theo.
SQL Server 2005 SP3
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 12. Để biết thêm thông tin về cách tải gói cập nhật tích lũy này cho SQL Server 2005 SP3, 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:
2345449 Gói cập nhật tích lũy 12 cho SQL Server 2005 Gói Dịch vụ 3 Lư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 bản hotfix và tất cả bản sửa lỗi bảo mật có trong bản phát hành sửa lỗi SQL Server 2005 SP3 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:
960598 Các bản dựng SQL Server 2005 được phát hành sau khi SQL Server 2005 Gói Dịch vụ 3 được phát hành
SQL Server 2008 Gói Dịch vụ 1
Bản sửa lỗi cho sự cố này được phát hành lần đầu trong Bản cập nhật tích lũy 11 dành cho SQL Server 2008 Gói Dịch vụ 1. Để biết thêm thông tin về gói cập nhật tích lũy 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:
2413738 Gói cập nhật tích lũy 11 cho SQL Server 2008 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 sửa lỗi SQL Server 2008 trước đó. Microsoft 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 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:
970365 Các bản dựng SQL Server 2008 được phát hành sau khi SQL Server 2008 Gói Dịch vụ 1 được phát hànhCác hotfix Microsoft SQL Server 2008 được tạo cho các gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng hotfix SQL Server 2008 Gói Dịch vụ 1 cho cài đặt SQL Server 2008 Gói Dịch vụ 1. Theo mặc định, mọi hotfix được cung cấp trong gói dịch vụ SQL Server sẽ được đưa vào gói dịch vụ SQL Server tiếp theo.
SQL Server 2008 Gói Dịch vụ 2
Bản sửa lỗi cho sự cố này được phát hành lần đầu trong Bản cập nhật Tích lũy 2 cho SQL Server 2008 Gói Dịch vụ 2. Để biết thêm thông tin về gói cập nhật tích lũy 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:
2467239 Gói cập nhật tích lũy 2 cho SQL Server 2008 Gói Dịch vụ 2Lư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 sửa lỗi SQL Server 2008 trước đó. Microsoft 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 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:
2402659 Các bản dựng SQL Server 2008 được phát hành sau khi SQL Server 2008 Gói Dịch vụ 2 được phát hành Các hotfix Microsoft SQL Server 2008 được tạo cho các gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng hotfix SQL Server 2008 Gói Dịch vụ 2 cho cài đặt SQL Server 2008 Gói Dịch vụ 2. Theo mặc định, mọi hotfix được cung cấp trong gói dịch vụ SQL Server sẽ được đưa vào gói dịch vụ SQL Server tiếp theo.
Giải pháp thay thế
Để tránh sự cố này, hãy dựng lại chỉ mục của cơ sở dữ liệu này bằng cách đặt tùy chọn TRỰC TUYẾN thành TẮT trong truy vấn.
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
Để biết thêm thông tin về các hoạt động lập chỉ mục trực tuyến, hãy truy cập trang web sau của Microsoft:
Thông tin chung về thao tác lập chỉ mục
Để biết thêm thông tin chi tiết về các thao tác lập chỉ mục trực tuyến, hãy truy cập trang web sau của Microsoft: