Triệu chứng:

Khi đang sử dụng DBCC CHECKDB với REPAIR_ALLOW_DATA_LOSS để sửa chữa cơ sở dữ liệu .MDF bị hỏng, như sau:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

bạn thấy thông báo lỗi sau:

Msg 5125, cấp 24, trạng thái 2, dòng 2
Tệp 'C: Program FilesMicrosoft SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf 'dường như đã bị cắt bớt bởi hệ điều hành. Kích thước mong đợi là 5120 KB nhưng kích thước thực tế là 5112 KB.
Msg 3414, cấp 21, trạng thái 1, dòng 2
Đã xảy ra lỗi trong khi khôi phục, ngăn cơ sở dữ liệu 'Error1' (39: 0) thay đổitarting. Chẩn đoán lỗi khôi phục và sửa chúng hoặc khôi phục từ một bản sao lưu tốt đã biết. Nếu lỗi không được sửa chữa hoặc dự kiến, hãy liên hệ với bộ phận Hỗ trợ kỹ thuật.

trong đó 'Error1' là tên của cơ sở dữ liệu MDF bị hỏng đang được sửa chữa.

Tin nhắn 5125 lỗi mới là lỗi phân bổ hay lỗi nhất quán. Nó xảy ra khi phần đuôi của tệp MDB bị xóa do hỏng dữ liệu.

Ảnh chụp màn hình thông báo lỗi:

Giải thích chính xác:

Khi phần đuôi của tệp MDB bị xóa, CHECKDB sẽ báo cáo Tin nhắn 5125 và cố gắng sửa chữa nó. Nếu cơ sở dữ liệu không thể được sửa chữa, thì nó sẽ tạo ra Tin nhắn 3414 lỗi.

Trên thực tế, cơ sở dữ liệu cũng có thể được phục hồi, nếu sử dụng sản phẩm của chúng tôi DataNumen SQL Recovery để thực hiện nhiệm vụ.

Các tệp mẫu:

SQL Server phiên bản Tệp MDF bị hỏng Tệp MDF được cố định bởi DataNumen SQL Recovery
SQL Server 2014 Error8.mdf Error8_fixed.mdf

Tài liệu tham khảo: