Gejala:

Apabila menggunakan DBCC CHECKDB bersama PEMBAIKAN_ALLOW_DATA_LOSS parameter untuk memperbaiki pangkalan data .MDF yang rosak, seperti ini:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

anda melihat mesej ralat berikut:

Msg 5028, Level 16, State 4, Line 4
Sistem tidak dapat mengaktifkan cukup pangkalan data untuk membina semula log.
Hasil DBCC untuk 'xxxx'.
CHECKDB menemui 0 kesalahan peruntukan dan 0 kesalahan konsistensi dalam pangkalan data 'xxxx'.
Msg 7909, Level 20, State 1, Line 4
Pembaikan mod kecemasan gagal. Anda mesti memulihkan dari sandaran.

di mana 'xxxx' adalah nama pangkalan data MDF yang rosak sedang diperbaiki.

Mesej 5028 ralat bukan ralat peruntukan atau ralat konsistensi.

Manakala Mesej 7909 adalah kesalahan teruk yang mungkin berlaku dalam banyak keadaan bila-bila masa SQL Server fikir pangkalan data tidak dapat dipulihkan.

Tangkapan skrin mesej ralat:

Penjelasan tepat:

Mesej ralat (Mesej 5028) nampaknya ada kaitan dengan fail LOG. Walau bagaimanapun, ini adalah salah laporan. Masalah sebenarnya masih disebabkan oleh kerosakan pangkalan data MDF.

Anda boleh menggunakan produk kami DataNumen SQL Recovery untuk memulihkan data dari fail MDF yang rosak dan menyelesaikan ralat ini.

Fail Contoh:

Contoh fail MDF yang rosak yang akan menyebabkan Mesej 5028 kesilapan:

SQL Server versi Fail MDF rosak Fail MDF dibetulkan oleh DataNumen SQL Recovery
SQL Server 2014 Ralat3.mdf Ralat3_fixed.mdf