Triệu chứng:

Khi đang sử dụng DBCC KIỂM TRADB với REPAIR_ALLOW_DATA_LOSS tham số để sửa chữa cơ sở dữ liệu .MDF bị hỏng, như thế này:

DBCC CHECKDB(xxxx, 'REPAIR_ALLOW_DATA_LOSS')

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

Msg 5028, cấp 16, trạng thái 4, dòng 4
Hệ thống không thể kích hoạt đủ cơ sở dữ liệu để xây dựng lại nhật ký.
Kết quả DBCC cho 'xxxx'.
CHECKDB tìm thấy 0 lỗi phân bổ và 0 lỗi nhất quán trong cơ sở dữ liệu 'xxxx'.
Msg 7909, cấp 20, trạng thái 1, dòng 4
Sửa chữa ở chế độ khẩn cấp không thành công. Bạn phải khôi phục từ bản sao lưu.

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

Tin nhắn 5028 lỗi không phải là lỗi phân bổ hay lỗi nhất quán.

Trong khi Tin nhắn 7909 là một lỗi nghiêm trọng có thể xảy ra trong nhiều tình huống bất cứ khi nào SQL Server nghĩ rằng cơ sở dữ liệu không thể phục hồi được.

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

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

Thông báo lỗi (Tin nhắn 5028) dường như có liên quan đến tệp LOG. Tuy nhiên, đây là một báo cáo sai. Vấn đề thực tế vẫn là do cơ sở dữ liệu MDF bị hỏng.

Bạn có thể sử dụng sản phẩm của chúng tôi DataNumen SQL Recovery để khôi phục dữ liệu từ tệp MDF bị hỏng và khắc phục lỗi này.

Các tệp mẫu:

Lấy mẫu các tệp MDF bị hỏng sẽ gây ra Tin nhắn 5028 lôi:

SQL Server phiên bản Tập tin MDF bị hỏng Tệp MDF được cố định bởi DataNumen SQL Recovery
SQL Server 2014 Lỗi3.mdf Error3_fixed.mdf