Bagikan melalui


Kesalahan MSSQLSERVER 823

Berlaku untuk:SQL Server

Detail

Atribut Nilai
Nama Produk SQL Server
ID Peristiwa 823
Sumber Kejadian MSSQLSERVER
Komponen SQLEngine
Nama Simbolis B_HARDERR
Teks Pesan Sistem operasi mengembalikan kesalahan %ls ke SQL Server selama %S_MSG pada offset %#016I64x dalam file '%ls'. Pesan tambahan dalam log kesalahan SQL Server dan log peristiwa sistem dapat memberikan detail lebih lanjut. Ini adalah kondisi kesalahan tingkat sistem yang 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 SQL Server Books Online.

Penjelasan

SQL Server menggunakan API Windows, seperti ReadFile, WriteFile, ReadFileScatter, dan WriteFileGather, untuk melakukan operasi I/O file. Setelah SQL Server melakukan operasi I/O ini, SQL Server memeriksa kondisi kesalahan apa pun yang terkait dengan panggilan API ini. Jika panggilan API gagal dengan kesalahan sistem operasi (OS), SQL Server melaporkan Kesalahan 823.

Pesan kesalahan 823 berisi informasi berikut:

  • File database tempat operasi I/O dilakukan.

  • Offset dalam file tempat operasi I/O dicoba. Offset ini adalah offset byte fisik dari awal file. Memba lagi angka ini dengan 8.192 memberi Anda nomor halaman logis yang dipengaruhi kesalahan.

  • Apakah operasi I/O adalah permintaan baca atau tulis.

  • Kode kesalahan sistem operasi dan deskripsi kesalahan dalam tanda kurung.

Kesalahan yang dihasilkan oleh sistem operasi

Kesalahan sistem operasi terjadi ketika panggilan API Windows baca atau tulis tidak berhasil, dan SQL Server mengalami kesalahan sistem operasi yang terkait dengan panggilan Windows API. Pesan berikut adalah contoh kesalahan 823:

Error: 823, Severity: 24, State: 2.
The operating system returned error 1117 (The request could not be performed because of an I/O device error.) to SQL Server during a read at offset 0x0000002d460000 in file 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\mydb.MDF'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe, system-level error condition that threatens database integrity and must be corrected immediately. It is recommended to complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

Kesalahan yang dihasilkan oleh DBCC CHECKDB

Anda mungkin melihat kesalahan dari DBCC CHECKDB pernyataan pada database yang terkait dengan file dalam pesan kesalahan. Anda dapat menjalankan DBCC CHECKDB pernyataan saat melihat kesalahan 823. DBCC CHECKDB Jika pernyataan tidak melaporkan kesalahan apa pun, Anda mungkin mengalami masalah sistem terputus-terputus atau masalah disk.

Anda dapat melihat informasi diagnostik lainnya untuk kesalahan 823 dalam file log kesalahan SQL Server dengan menggunakan bendera pelacakan 818. Untuk informasi selengkapnya, lihat Diagnostik SQL Server mendeteksi masalah I/O yang tidak dilaporkan karena pembacaan basi atau tulisan yang hilang.

Penyebab

Pesan kesalahan 823 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. Untuk pembacaan file, SQL Server mencoba kembali permintaan baca empat kali sebelum mengembalikan 823. Jika operasi coba lagi berhasil, kueri tidak gagal, tetapi pesan MSSQLSERVER_825 ditulis ke dalam ERRORLOG dan Log Peristiwa.

Tindakan pengguna

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

  • Periksa konsistensi database yang terletak pada volume yang sama (seperti yang dilaporkan dalam pesan 823) menggunakan DBCC CHECKDB perintah . Jika Anda menemukan inkonsistensi dari DBCC CHECKDB perintah, gunakan panduan dari Cara memecahkan masalah kesalahan konsistensi database yang dilaporkan oleh DBCC CHECKB.

  • Tinjau log Peristiwa Windows untuk setiap kesalahan atau pesan yang dilaporkan dari sistem operasi, perangkat penyimpanan, atau driver perangkat. Jika terkait dengan kesalahan ini dengan cara tertentu, atasi kesalahan tersebut terlebih dahulu. Misalnya, selain pesan 823, Anda mungkin juga melihat peristiwa seperti "Driver mendeteksi kesalahan pengontrol pada \Device\Harddisk4\DR4" yang dilaporkan oleh sumber Disk di Log Peristiwa. Dalam hal ini, Anda perlu mengevaluasi apakah file ini ada di perangkat ini dan kemudian memperbaiki kesalahan disk tersebut.

  • Gunakan utilitas SQLIOSim untuk mengetahui apakah kesalahan 823 ini dapat direproduksi di luar permintaan I/O SQL Server reguler. Utilitas SQLIOSim dikirim dengan SQL Server 2008 dan versi yang lebih baru sehingga tidak perlu mengunduh secara terpisah. Anda biasanya dapat menemukannya di folder Anda C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Binn .

  • Bekerja sama 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 sudah diperbarui.
  • Jika vendor perangkat keras atau produsen perangkat memberi Anda utilitas diagnostik apa pun, gunakan untuk mengevaluasi kesehatan sistem I/O.

  • Evaluasi apakah ada driver filter yang ada di jalur permintaan I/O ini yang mengalami masalah.

    • Periksa apakah ada pembaruan untuk driver filter ini.

    • Dapatkah Anda menghapus atau menonaktifkan driver filter ini untuk mengamati apakah masalah yang mengalihkan kesalahan 823 hilang?

Contoh dengan kesalahan OS 21

Dalam hal ini, kesalahan OS 21 yang mendasar menunjukkan bahwa perangkat disk offline dan tidak tersedia untuk digunakan OS dan SQL Server.

Error: 823, Severity: 24, State: 2.
The operating system returned error 21 (The device is not ready.) to SQL Server during a read at offset 0x0000002d460000 in file 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\mydb.MDF'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe, system-level error condition that threatens database integrity and must be corrected immediately. It is recommended to complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

Resolution

Jika Anda mengalami skenario serupa, atasi kesalahan OS yang mendasarinya. Dalam hal ini, bekerja samalah dengan administrator sistem dan vendor perangkat keras Anda untuk memastikan bahwa perangkat disk online dan berfungsi dengan baik. Pastikan tidak ada kesalahan atau kerusakan yang dilaporkan.

Koneksi jaringan yang tidak stabil juga dapat menyebabkan kesalahan ini, misalnya ketika file database disimpan pada penyimpanan terpasang jaringan (NAS) atau perangkat SAN yang diakses melalui jaringan. Dalam kasus seperti ini, Anda mungkin harus memeriksa integritas fisik database setelah perangkat disk dipulihkan dengan menjalankan DBCC CHECKDB. Jika kerusakan database dilaporkan, pulihkan cadangan database baik terakhir yang diketahui.