Gejala:

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

SQL Server mengesan ralat I / O berasaskan konsistensi logik: halaman koyak (tandatangan yang diharapkan: 0x ########; tandatangan sebenar: 0x #######). Ia berlaku semasa pembacaan halaman (#: #) di ID pangkalan data # pada offset ### dalam fail 'xxxx.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.

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. SQL Server menggunakan dua mekanisme untuk memastikan konsistensi dan penyatuan data dalam halaman, iaitu, checksum atau halaman koyak. Kedua-duanya adalah pilihan.

If SQL Server mendapati halaman yang koyak kerana beberapa halaman data tidak sah, maka akan melaporkan kesilapan 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 Ralat5_1.mdf Ralat5_1_fixed.mdf
SQL Server 2008 R2 Ralat5_2.mdf Ralat5_2_fixed.mdf
SQL Server 2012 Ralat5_3.mdf Ralat5_3_fixed.mdf
SQL Server 2014 Ralat5_4.mdf Ralat5_4_fixed.mdf