Bagikan melalui


MSSQLSERVER_832

Berlaku untuk: SQL Server

Detail

Atribut Nilai
Nama Produk SQL Server
ID Peristiwa 832
Sumber Kejadian MSSQLSERVER
Komponen SQLEngine
Nama Simbolis B_CONSTPAGECHANGED
Teks Pesan Halaman yang seharusnya konstanta telah berubah (checksum yang diharapkan: <nilai> yang diharapkan, checksum aktual: <nilai> aktual, database <dbid>, file '<nama file>', pageno> halaman<). Ini biasanya menunjukkan kegagalan memori atau kerusakan perangkat keras atau OS lainnya.

Penjelasan

Faktor eksternal telah menyebabkan halaman database dimodifikasi di luar kode mesin SQL Server normal yang digunakan untuk mengubah halaman database. Kondisinya dapat berupa:

  • Utas yang berjalan dalam proses SQL Server yang salah menulis di halaman database. Ini sering disebut sebagai "scribbler"
  • Masalah perangkat keras atau sistem operasi adalah memori yang mendukung halaman database salah dimodifikasi atau rusak

Ketika SQL Server mendeteksi kesalahan perilaku 832 ini dimunculkan.

Tindakan pengguna

Untuk menemukan penyebab kesalahan, pertimbangkan opsi ini:

  • Anda harus menjalankan pemeriksaan perangkat keras atau sistem normal untuk menentukan apakah ada memori, CPU, atau masalah terkait perangkat keras lainnya. Pastikan semua driver sistem, Pembaruan sistem operasi, dan pembaruan perangkat keras telah diterapkan ke sistem kami. Pertimbangkan untuk menjalankan diagnostik pembuatan perangkat keras apa pun termasuk pengujian terkait memori.
  • Evaluasi DLL "eksternal" apa yang mungkin dimuat di SQL Server yang dapat menyebabkan masalah ini termasuk prosedur tersimpan yang diperluas, objek COM, atau DLL lain yang mungkin salah memodifikasi memori SQL Server yang dicadangkan untuk halaman database.

Setiap kali Anda melihat kesalahan ini, Anda harus segera mempertimbangkan untuk berjalan DBCC CHECKDB terhadap database yang <dirujuk oleh dbid> dalam pesan kesalahan.

Informasi selengkapnya

Kesalahan ini terdeteksi oleh tugas latar belakang yang sering disebut sebagai LazyWriter. ("perintah" untuk tugas ini dilihat sebagai LAZY WRITER). Oleh karena itu, kesalahan ini tidak dikembalikan ke aplikasi klien. Kesalahan akan ditulis ke Log Peristiwa Aplikasi Windows sebagai EventID=832.

Hanya halaman yang saat ini tidak dimodifikasi dalam cache (atau "kotor") yang diperiksa. Inilah sebabnya mengapa pesan menggunakan istilah "konstan" karena halaman tidak pernah diubah sejak dibaca dari disk. Selain itu, halaman dibaca dalam "bersih" dari disk karena memiliki nilai checksum pada halaman dan belum mengalami kegagalan checksum (Msg 824). Namun, halaman dapat dimodifikasi pada beberapa titik setelah kesalahan ini, dan kemudian ditulis ke disk dengan modifikasi yang salah. Jika kesalahan ini terjadi, checksum baru dihitung berdasarkan semua modifikasi sebelum ditulis ke disk. Oleh karena itu, halaman dapat rusak pada disk tetapi bacaan berikutnya dari disk mungkin tidak memicu kegagalan checksum. Penting untuk dijalankan DBCC CHECKDB pada database apa pun yang dirujuk oleh kesalahan ini.

Ada kemungkinan bahwa bahkan DBCC CHECKDB tidak akan melaporkan kesalahan untuk halaman dalam status ini setelah ditulis ke disk. Ini karena modifikasi yang salah bisa berada di lokasi di halaman yang tidak menyimpan data apa pun, juga tidak berisi informasi struktur halaman atau baris penting, atau bisa menjadi modifikasi pada data yang tidak dapat dideteksi CHECKDB.

Detail dan informasi selengkapnya tentang Msg 832 juga dapat dibaca di whitepaper SQL Server I/O Basics, Bab 2.