Bagikan melalui


MSSQLSERVER_855

Berlaku untuk:SQL Server

Detail

Atribut Nilai
Nama Produk SQL Server
ID Peristiwa 855
Sumber Kejadian MSSQLSERVER
Komponen SQLEngine
Nama Simbolis BAD_MEMORY_OUTSIDE_BPOOL
Teks Pesan Kerusakan memori perangkat keras yang tidak dapat dikoreksi terdeteksi. Sistem Anda mungkin menjadi tidak stabil. Periksa log peristiwa Windows untuk detail selengkapnya

Penjelasan

Pesan ini menunjukkan SQL Server mendeteksi halaman memori yang buruk dalam objek yang di-cache di luar kumpulan buffer. Pesan ini dimunculkan pada sistem yang mendukung kemampuan untuk pulih dari kesalahan memori. SQL Server tidak dapat memulihkan dari skenario ini dan mencatat pesan ini.

Tindakan pengguna

Anda harus menjalankan pemeriksaan perangkat keras atau sistem untuk menentukan apakah ada masalah memori atau CPU. Pastikan semua driver sistem, Pembaruan sistem operasi, dan pembaruan perangkat keras telah diterapkan ke sistem Anda. Pertimbangkan untuk menjalankan diagnostik pembuatan perangkat keras apa pun termasuk pengujian terkait memori. Setiap kali Anda melihat kesalahan ini, pertimbangkan untuk berjalan DBCC CHECKDB terhadap semua database dalam instans ini.

Informasi selengkapnya

Pada komputer yang memiliki perangkat keras yang lebih baru dan menjalankan Windows Server 2012 atau versi yang lebih baru, perangkat keras dapat memberi tahu sistem operasi dan aplikasi bahwa halaman memori (halaman sistem operasi) ditandai sebagai buruk atau rusak. Aplikasi seperti SQL Server dapat mendaftarkan pemberitahuan halaman memori buruk ini dengan menggunakan set API berikut:

  • GetMemoryErrorHandlingCapabilities
  • RegisterBadMemoryNotification
  • BadMemoryCallbackRoutine

SQL Server menambahkan dukungan untuk pemberitahuan ini di Microsoft SQL Server 2012 (11.x) dan versi yang lebih baru. Selama startup SQL Server, SQL Server memeriksa apakah perangkat keras mendukung fitur baru ini. Selain itu, Anda menerima pesan berikut dalam log kesalahan:

<Mesin Server Datetime> mendukung pemulihan kesalahan memori. Perlindungan memori SQL diaktifkan untuk pulih dari kerusakan memori.

Saat ini, hanya kumpulan buffer yang mengambil tindakan ketika SQL Server menerima pemberitahuan ini. Ketika menerima pemberitahuan, SQL Server harus melakukan iterasi melalui seluruh kumpulan buffer dan menemukan alamat untuk setiap buffer yang dialokasikan. Kemudian, SQL Server menggunakan QueryWorkingSetEX API untuk memeriksa apakah salah satu halaman memori yang mengembalikan halaman data ditandai sebagai buruk. Struktur PSAPI_WORKING_SET_EX_BLOCK output yang sesuai dengan halaman memori ini akan memiliki anggotanya yang buruk diatur ke 1 jika ada yang rusak dilaporkan.

Jika kumpulan buffer atau halaman data saat ini tidak diubah atau tidak memproses I/O, SQL Server dapat membuang dan membatalkan penerapan halaman data. Kemudian, SQL Server mencatat pesan berikut:

SQL Server telah mendeteksi kerusakan memori perangkat keras dalam database '%ls', ID file: %u, ID halaman; %u, alamat memori: 0x%I64x dan telah berhasil memulihkan halaman.

Ketika kueri mengharuskan halaman data itu lagi, kumpulan buffer dapat membaca halaman data kembali dari disk dan membawa konten kembali ke kumpulan buffer. Dimungkinkan juga agar versi halaman di disk berada dalam keadaan rusak. Dalam hal ini, SQL Server dapat mencatat kesalahan tambahan seperti kesalahan 824.

Jika halaman buruk digunakan bukan oleh kumpulan buffer tetapi oleh beberapa objek atau struktur cache lainnya, SQL Server mencatat pesan berikut:

Kerusakan memori perangkat keras yang tidak dapat dikoreksi terdeteksi. Sistem Anda mungkin menjadi tidak stabil. Silakan periksa log peristiwa Windows untuk detail lebih lanjut.

Jika server melaporkan kesalahan memori, Anda harus menghubungi vendor perangkat keras komputer dan melakukan tindakan yang sesuai seperti melakukan diagnostik memori, memperbarui BIOS dan firmware, dan mengganti modul memori yang buruk.

Anda dapat menggunakan bendera pelacakan SQL Server 849 untuk mencegah SQL Server mendaftar dengan sistem operasi untuk pemberitahuan kesalahan memori. Namun, perlu diketahui bahwa mengaktifkan bendera pelacakan 849 akan mencegah SQL Server menerima pemberitahuan memori buruk dari sistem operasi. Oleh karena itu, kami tidak menyarankan Anda menggunakan bendera pelacakan ini dalam keadaan umum.

Selain itu, ketahuilah bahwa, secara default, SQL Server akan menerima pemberitahuan ini pada perangkat keras yang didukung.

Anda juga harus menyadari bahwa ketika SQL Server mendaftar untuk pemberitahuan kesalahan memori ini, proses sistem penulis malas tidak melakukan pemeriksaan halaman konstan. Untuk informasi selengkapnya tentang pemeriksaan halaman konstanta, lihat Cara memecahkan masalah Msg 832 (halaman konstanta telah berubah) di SQL Server.