Gejala:

Semasa melampirkan pangkalan data .MDF di SQL Server, anda melihat mesej ralat berikut:

SQL Server mengesan ralat I / O berdasarkan konsistensi logik: checksum yang salah (dijangka: 0x2abc3894; sebenarnya: 0x2ebe208e). Ia berlaku semasa pembacaan halaman (1: 1) dalam ID pangkalan data 12 pada offset 0x00000000002000 dalam fail 'xxx.mdf'. Mesej tambahan di SQL Server log ralat atau log peristiwa sistem mungkin memberikan lebih terperinci. Ini adalah keadaan ralat yang teruk yang mengancam integriti pangkalan data dan mesti diperbetulkan dengan segera. Lengkapkan pemeriksaan ketekalan pangkalan data penuh (DBCC CHECKDB) Kesalahan ini boleh disebabkan oleh banyak faktor; untuk maklumat lebih lanjut, lihat SQL Server Buku Dalam Talian. (Microsoft SQL Server, Ralat: 824)

di mana 'xxx.mdf' adalah nama fail MDF yang sedang diakses.

Kadang kala pangkalan data .MDF anda mungkin berjaya dilampirkan. Namun, apabila anda cuba melaksanakan pernyataan SQL, seperti

PILIH * DARI [TestDB]. [Dbo]. [Test_table_1]

anda juga akan mendapat mesej ralat di atas.

Tangkapan skrin mesej ralat:

Penjelasan tepat:

Data dalam fail MDF disimpan sebagai halaman, setiap halaman 8KB. Setiap halaman mempunyai medan checksum pilihan.

If SQL Server mendapati nilai checksum di beberapa halaman data tidak sah, maka akan melaporkan kesalahan ini.

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 ralat:

SQL Server versi Fail MDF rosak Fail MDF dibetulkan oleh DataNumen SQL Recovery
SQL Server 2005 Ralat4_1.mdf Ralat4_1_fixed.mdf
SQL Server 2008 R2 Ralat4_2.mdf Ralat4_2_fixed.mdf
SQL Server 2012 Ralat4_3.mdf Ralat4_3_fixed.mdf
SQL Server 2014 Ralat4_4.mdf Ralat4_4_fixed.mdf