KB2413430 - KHẮC PHỤC: Thông báo lỗi "Không thể tìm thấy bản ghi phiên bản và trang không được phân bổ" xảy ra khi bạn dựng lại chỉ mục bằng tùy chọn TRỰC TUYẾN trong SQL Server 2005, SQL Server 2008 hoặc SQL Server 2008 R2

Áp dụng cho
Microsoft SQL Server 2005 Enterprise Edition SQL Server 2008 Enterprise SQL Server 2008 R2 Enterprise

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:

Mô tả chi tiết về các thao tác lập chỉ mục trực tuyến