Khôi phục Nhật ký với chế độ chờ trên đĩa định dạng nâng cao có thể gây ra lỗi 9004 trong SQL Server 2008 R2 hoặc SQL Server 2012

Bug #: 96663 (Content Idea)

Triệu chứng

Hãy xem xét tình huống sau:

  • Bạn có Microsoft SQL Server gửi bản ghi hoặc sao lưu/khôi phục thiết lập giữa hai máy chủ.

  • Cơ sở dữ liệu chính có giao dịch tệp nhật ký (.ldf) được lưu trữ trên ổ đĩa có "Byte mỗi cung vật lý" đặt là 512 byte.

  • Bạn thực hiện giao dịch Nhật ký sao lưu cơ sở dữ liệu này, và sau đó bạn cố gắng khôi phục bằng cách sử dụng tuỳ chọn chờ trên cơ sở dữ liệu thứ cấp.

  • Tệp nhật ký giao dịch cơ sở dữ liệu thứ cấp (.ldf) được đặt trên một ổ đĩa có "Byte mỗi cung vật lý" đặt là 4096 byte.

Trong trường hợp này, hoạt động khôi phục không thành công và trả về thông báo lỗi sau:

Lỗi: 9004, mức độ nghiêm trọng: 16, trạng thái: 6. Lỗi xảy ra trong khi xử lý Nhật ký cho cơ sở dữ liệu databasename. Nếu có thể khôi phục từ bản sao lưu. Nếu không có bản sao lưu, nó có thể cần thiết để xây dựng lại các bản ghi.

Sau khi lỗi này xảy ra, cơ sở dữ liệu thứ cấp đi Thái nghi ngờ.

Giải pháp

Cập Nhật tích luỹ

Vấn đề này lần đầu tiên được khắc phục trong bản Cập Nhật tích luỹ sau SQL Server:

Lưu ý Sau khi bạn cài đặt bản cập nhật này, bạn phải kích hoạt cờ theo dõi 3057 để kích hoạt bản vá này. Để kích hoạt cờ theo dõi 3057, xem chủ đề Cờ theo dõi (Transact-SQL) trên trang web Microsoft Developer Network (MSDN).

Mỗi bản Cập Nhật tích luỹ mới cho SQL Server chứa tất cả các bảo mật và hotfix vá có trong bản Cập Nhật tích luỹ. Xem các bản Cập Nhật tích luỹ mới nhất cho SQL Server:

Chú ý Đối với phiên bản SQL Server 2008 R2 SP3, bạn cần nâng cấp máy chủ để cập nhật bảo mật mới nhất hiện có tại:

Tải xuống bản Cập Nhật bảo mật dành cho SQL Server 2008 R2 SP3

Hotfix for SQL Server 2008 R2 SP3To resolve this issue, apply KB 3033860: An on-demand hotfix update package is available for SQL Server 2008 R2 SP3.

Hotfix dành cho SQL Server 2008 R2 SP2Cập nhật nóng được hỗ trợ do Microsoft cung cấp. Tuy nhiên, cập nhật nóng này chỉ được dùng để khắc phục sự cố được mô tả trong bài viết này. Chỉ áp dụng cập nhật nóng này cho hệ thống đang gặp sự cố cụ thể này. Nếu cập nhật nóng này sẵn có để tải xuống, có phần "Tải xuống Hotfix sẵn có" ở đầu bài viết Cơ sở Kiến thức này. Nếu phần này không xuất hiện, hãy gửi một yêu cầu tới bộ phận Hỗ trợ và Dịch vụ Khách hàng của Microsoft để nhận hotfix. Lưu ý Nếu sự cố khác xảy ra hoặc nếu cần khắc phục sự cố, bạn có thể phải tạo một yêu cầu dịch vụ riêng. Chi phí hỗ trợ thông thường sẽ tính cho các câu hỏi hỗ trợ bổ sung và các sự cố không phù hợp với cập nhật nóng cụ thể này. Để có danh sách đầy đủ số điện thoại hỗ trợ và dịch vụ khách hàng của Microsoft hoặc để tạo yêu cầu dịch vụ riêng, hãy ghé thăm website sau của Microsoft:

http://support.microsoft.com/contactus/?ws=supportLưu ý "Tải xuống Hotfix sẵn có" Hiển thị các ngôn ngữ mà hotfix này sẵn có. Nếu bạn không thấy ngôn ngữ của mình thì đó là do cập nhật nóng này hiện không có ngôn ngữ đó.

Cách giải quyết

Microsoft đã xác nhận rằng đây là sự cố trong sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho". Để giải quyết vấn đề này, sử dụng một trong các giải pháp sau:

  • Di chuyển tệp nhật ký giao dịch đích vào ổ đĩa có "Byte mỗi cung vật lý" đặt là 512 byte. Lưu ý Tệp chờ vẫn có thể được đặt trên ổ đĩa có "Byte mỗi cung vật lý" đặt là 4096 byte.

  • Khôi phục sao lưu Nhật ký mà không sử dụng tuỳ chọn chế độ chờ. Thay vì lựa chọn chế độ chờ, sử dụng tuỳ chọn không có phục hồi trong khi thao tác khôi phục.

Thông tin Bổ sung

Bạn có thể sử dụng Tiện ích dòng lệnh Fsutil để xác định giá trị "Byte mỗi cung vật lý". Nếu tham số này không được hiển thị trong kết quả, bạn phải áp dụng hotfix được chỉ định trong KB982018. Để kiểm tra các loại ổ đĩa mà bạn có, hãy làm theo các bước sau:

  1. Chạy lệnh sau tại dấu nhắc lệnh nâng cao:Fsutil fsinfo ntfsinfo x : Lưu ý Trong lệnh này, < x > đại diện cho ổ đĩa mà bạn đang kiểm tra.

  2. Sử dụng các giá trị cho "Byte mỗi cung" và "Byte mỗi cung vật lý" để xác định loại ổ đĩa mà bạn có. Để thực hiện việc này, sử dụng bảng sau.

    Giá trị "Byte mỗi cung"

    Giá trị "Byte mỗi cung vật lý"

    Loại ổ đĩa

    4096

    4096

    Riêng 4K

    512

    4096

    Định dạng nâng cao (còn được gọi là 512E)

    512

    512

    512 byte riêng

Microsoft Internal Support Information

This is a known issue. Refer to VSTS 2780247 for more details. The scenario is very specific to Restore Log with StandBy option.

VSTS: 2780247
Hotfix: 2891952 & 2891962

Call stack of the thread which reports 9004 error message and the input buffer of the same:

Call Site
sqlservr!CImageHelper::DoMiniDump+0x3d4
sqlservr!stackTrace+0x82b
sqlservr!stackTraceCallBack+0x49
sqlservr!ex_raise2+0x21f
sqlservr!ex_raise+0x99
sqlservr!SQLServerLogMgr::CheckLogBlockReadComplete+0x908
sqlservr!SQLServerLogIterForward::TryLogReadAhead+0x85
sqlservr!SQLServerLogIterForward::GetNextBlock+0x25e
sqlservr!SQLServerLogIterForward::GetNext+0xda
sqlservr!RecoveryMgr::AnalysisPass+0x25a
sqlservr!RecoveryMgr::RecoverUpToRollback+0x334
sqlservr!RecoveryMgr::RecoverDb+0x5e
sqlservr!BackupOperation::BringDatabaseToStandby+0x27d
sqlservr!BackupOperation::BringDatabaseOnline+0x59
sqlservr!BackupOperation::CompleteRestore+0x28b
sqlservr!BackupOperation::Restore+0x3bb
sqlservr!BackupEntry::RestoreLog+0x1b6
sqlservr!CStmtLoadXact::XretExecute+0x85
sqlservr!CMsqlExecContext::ExecuteStmts<1,1>+0x3a9
sqlservr!CMsqlExecContext::FExecute+0x986
sqlservr!CSQLSource::Execute+0x7b5
sqlservr!process_request+0x64b
sqlservr!process_commands+0x4e5


RESTORE LOG [CS_DB]
FROM DISK = N'C:\SQLBackup\CS_DB_20140606040347.trn'
WITH FILE = 1
,STANDBY = N'C:\SQLBackup\CS\CS_DB_log_standby.tuf'
,NOUNLOAD
,STATS = 10;

Author ID (email alias): pradm
Writer ID(email alias):
Tech Review ID (email alias): Sureshka; tejasaks; mikez; pradm
Editor ID (email alias): v-mordew; v-jesits

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

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Microsoft dùng nội bộ

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

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

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×