Bagikan melalui


MSSQLSERVER_824

Berlaku untuk:SQL Server

Detail

Atribut Value
Nama produk Server SQL
ID Peristiwa 824
Sumber Kejadian MSSQLSERVER
Komponen SQLEngine
Nama Simbolis B_HARDSSERR
Teks Pesan SQL Server mendeteksi kesalahan I/O berbasis konsistensi logis: %ls. Ini terjadi selama %S_MSG halaman %S_PGID dalam ID database %d pada offset %#016I64x dalam file '%ls'. Pesan tambahan dalam log kesalahan SQL Server atau log kesalahan sistem operasi dapat memberikan detail lebih lanjut. Ini adalah kondisi kesalahan parah yang mengancam integritas database dan harus segera diperbaiki. Selesaikan pemeriksaan konsistensi database lengkap (DBCC CHECKDB). Kesalahan ini dapat disebabkan oleh banyak faktor; untuk informasi selengkapnya, lihat https://go.microsoft.com/fwlink/?linkid=2252374.

Gejala

Anda mungkin mengalami pesan kesalahan berikut di log kesalahan SQL Server atau log peristiwa Aplikasi Windows jika pemeriksaan konsistensi logis gagal setelah membaca atau menulis halaman database:

2022-11-02 15:46:42.90 spid51      Error: 824, Severity: 24, State: 2.
2022-11-02 15:46:42.90 spid51      SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 1:43686; actual 0:0). It occurred during a read of page (1:43686) in database ID 23 at offset 0x0000001554c000 in file 'H:\MSSQL16.MSSQLSERVER\MSSQL\DATA\my_db.mdf'. Additional messages in the SQL Server error log or operating system error log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see https://go.microsoft.com/fwlink/?linkid=2252374.

Jika kueri SELECT atau DML berjalan ke pesan ini, pesan kesalahan dikembalikan ke aplikasi, dan koneksi database dihentikan.

Penyebab

Kesalahan ini menunjukkan bahwa Windows melaporkan bahwa halaman berhasil dibaca dari disk, tetapi SQL Server menemukan sesuatu yang salah dengan halaman. Kesalahan ini mirip dengan Kesalahan 823, kecuali bahwa Windows tidak mendeteksi kesalahan. Kesalahan 824 biasanya menunjukkan masalah dalam subsistem I/O seperti drive disk yang gagal, masalah firmware, driver perangkat yang rusak, dan sebagainya. Untuk informasi selengkapnya tentang kesalahan I/O, lihat Dasar-Dasar I/O Microsoft SQL Server, Bab 2.

SQL Server menggunakan API Windows berikut untuk melakukan operasi I/O: ReadFile, , WriteFileReadFileScatter, dan WriteFileGather. Setelah menyelesaikan operasi I/O ini, SQL Server memeriksa kondisi kesalahan apa pun yang terkait dengan panggilan API ini. Jika panggilan API ini gagal dengan kesalahan Sistem Operasi, maka SQL Server melaporkan Kesalahan 823. Mungkin ada situasi di mana panggilan Windows API benar-benar berhasil, tetapi data yang ditransfer oleh operasi I/O mungkin mengalami masalah konsistensi logis. Masalah konsistensi logis ini dilaporkan melalui Kesalahan 824.

Kesalahan 824 berisi informasi berikut:

  • File database tempat operasi I/O dilakukan
  • Offset dengan file tempat operasi I/O dicoba
  • Database tempat file ini berada
  • Nomor halaman yang terlibat dalam operasi I/O
  • Apakah operasi adalah operasi baca atau tulis
  • Detail tentang pemeriksaan konsistensi logis yang gagal (jenis pemeriksaan, nilai aktual, dan nilai yang diharapkan yang digunakan untuk pemeriksaan ini)

Pemeriksaan konsistensi logis ini adalah pemeriksaan integritas yang dilakukan oleh SQL Server untuk memastikan elemen kunci data yang terlibat dalam transfer I/O tetap utuh di seluruh operasi I/O. Pemeriksaan tersebut meliputi Checksum, Halaman Robek, Transfer Singkat, ID Halaman Buruk, Pembacaan Kedaluarsa, dan Kegagalan Audit Halaman. Sifat pemeriksaan yang dilakukan bervariasi tergantung pada opsi konfigurasi yang berbeda di tingkat database dan server.

Pesan kesalahan 824 biasanya menunjukkan bahwa ada masalah dengan sistem penyimpanan yang mendasar atau perangkat keras atau driver yang berada di jalur permintaan I/O. Anda dapat mengalami kesalahan ini ketika ada inkonsistensi dalam sistem file atau jika file database rusak.

Resolusi

Jika Anda mengalami kesalahan 824, Anda dapat mencoba resolusi berikut:

  • Tinjau tabel suspect_pages di msdb untuk memeriksa apakah halaman lain (dalam database yang sama atau database yang berbeda) mengalami masalah ini.

    SELECT * FROM msdb..suspect_pages
    WHERE (event_type = 1 OR event_type = 2 OR event_type = 3);
    
  • Periksa konsistensi database yang terletak dalam volume yang sama (seperti yang dilaporkan dalam pesan 824) menggunakan perintah DBCC CHECKDB. Jika Anda menemukan inkonsistensi dari DBCC CHECKDB perintah, gunakan panduan dari artikel Pangkalan Pengetahuan Cara memecahkan masalah kesalahan konsistensi database yang dilaporkan oleh DBCC CHECKDB.

    DBCC CHECKDB;
    
  • Jika database yang mengalami kesalahan 824 ini tidak mengaktifkan PAGE_VERIFY CHECKSUM opsi database, aktifkan opsi segera. Kesalahan 824 dapat terjadi karena alasan lain selain kegagalan checksum, tetapi CHECKSUM memberikan opsi terbaik untuk memverifikasi konsistensi halaman setelah ditulis ke disk. Gunakan skrip ini untuk mengidentifikasi database di mana opsi CHECKSUM tidak diaktifkan:

    SELECT * FROM sys.databases
    WHERE page_verify_option_desc != 'CHECKSUM';
    
  • Tinjau log Peristiwa Windows untuk setiap kesalahan atau pesan yang dilaporkan dari Sistem Operasi atau Perangkat Storage atau Driver Perangkat. Jika terkait dengan kesalahan ini dengan cara tertentu, Anda harus mengatasi kesalahan tersebut terlebih dahulu. Misalnya, selain pesan 824, Anda mungkin juga melihat peristiwa seperti "Driver mendeteksi kesalahan pengontrol pada \Device\Harddisk4\DR4" yang dilaporkan oleh sumber Disk di Log Peristiwa. Dalam kasus ini, Anda harus mengevaluasi apakah file ini ada di perangkat ini lalu memperbaiki kesalahan disk tersebut terlebih dahulu.

  • Gunakan utilitas SQLIOSim untuk mengetahui apakah kesalahan 824 ini dapat direproduksi di luar permintaan I/O SQL Server biasa. SQLIOSim dikirim dengan SQL Server 2008 (10.0.x) dan versi yang lebih baru, sehingga tidak perlu mengunduh secara terpisah.

  • Bekerja samalah dengan vendor perangkat keras atau produsen perangkat Anda untuk memastikan:

    • Perangkat keras dan konfigurasi sesuai dengan persyaratan I/O SQL Server.
    • Driver perangkat dan komponen perangkat lunak pendukung lainnya dari semua perangkat di jalur I/O diperbarui.
  • Jika vendor perangkat keras atau produsen perangkat memberi Anda utilitas diagnostik apa pun, gunakan utilitas tersebut untuk mengevaluasi kesehatan sistem I/O.

  • Evaluasi apakah ada Driver Filter yang ada di jalur I/O permintaan ini. Anda dapat menjalankan perintah berikut untuk mencantumkan semua driver filter pada sistem:

    fltmc filters
    fltmc instances
    
    • Kecualikan file database dan log agar tidak dipindai oleh driver filter tersebut. Untuk informasi selengkapnya, lihat Direktori dan ekstensi nama file untuk dikecualikan dari pemindaian virus
    • Periksa apakah ada pembaruan untuk driver filter ini
    • Dapatkah driver filter ini dihapus atau dinonaktifkan untuk mengamati apakah masalah yang mengalihkan kesalahan 824 hilang?
  • Jika Anda menjalankan komputer virtual, pastikan semua driver virtualisasi diperbarui atau tanyakan kepada vendor virtualisasi untuk informasi selengkapnya.

  • Jika masalahnya tidak terkait dengan perangkat keras dan cadangan bersih yang diketahui tersedia, pulihkan database dari cadangan.