MSSQLSERVER_9004

Berlaku untuk: SQL Server (semua versi yang didukung)

Detail

Atribut Nilai
Nama Produk SQL Server
ID Peristiwa 9004
Sumber Kejadian MSSQLSERVER
Komponen SQLEngine
Nama Simbolis LOG_CORRUPT
Teks Pesan Terjadi kesalahan saat memproses log untuk database '%.*ls'. Jika memungkinkan, pulihkan dari cadangan. Jika cadangan tidak tersedia, mungkin perlu untuk membangun kembali log.

Penjelasan

Terjadi kesalahan saat memproses log selama pembatalan, pemulihan, atau replikasi. Ini dapat menunjukkan kesalahan yang terdeteksi oleh sistem operasi atau kesalahan konsistensi internal yang terdeteksi oleh SQL Server.
Mesin database SQL Server melakukan pemeriksaan logis pada konsistensi konten log transaksi saat membaca dan memprosesnya. Tidak semua aspek header log, blok log, dan rekaman log diperiksa. Nomor Status memberikan informasi lebih lanjut tentang jenis kegagalan:

  • Status 1 Header file log dari File Log Virtual (VLF) rusak. Jika header file log yang rusak ditemukan sebagai bagian dari memulai database pada startup layanan, Anda mungkin hanya melihat Kesalahan 9004 di ERRORLOG. Header File Log adalah bagian pertama dari setiap VLF di dalam log transaksi. Header file log tidak sama dengan header file tunggal, atau 8 KB pertama, dari file log. Jika header file file log rusak, Anda mungkin mendapatkan Msg 5172, mirip dengan kerusakan halaman header file database.
  • Status 2 dan 3 Blok log tidak valid saat melakukan pemulihan selama operasi RESTORE.
  • Status 4 hingga 12 Ini semua adalah berbagai pemeriksaan pada blok log saat memproses rekaman log. Ini termasuk paritas, sektor, dan pemeriksaan logis lainnya pada konsistensi log transaksi

Dalam kebanyakan kasus, kesalahan ini hanya terlihat di ERRORLOG atau Log Peristiwa Aplikasi Windows dengan EventID = 9004 karena operasi yang memproses log tidak didasarkan pada perintah pengguna langsung (seperti pemulihan yang berjalan saat mesin SQL Server dimulai). Dalam situasi ini, kesalahan 9004 sering terlihat bersama dengan Kesalahan 3414. Namun, beberapa kueri seperti ALTER DATABASE dapat memerlukan pemrosesan log dan oleh karena itu akan melihat kesalahan ini. Karena kesalahan berada di Tingkat Keparahan=21, sesi pengguna terputus.

Penyebab

Kesalahan 9004 adalah kesalahan umum yang menunjukkan isi log transaksi rusak. Alasan log menjadi tidak konsisten mirip dengan masalah kerusakan database yang terdeteksi oleh SQL Server Engine. Untuk menemukan penyebab kerusakan log, Anda harus mengikuti teknik serupa yang digunakan untuk kerusakan database termasuk analisis kemungkinan masalah perangkat keras, sistem file, dan I/O. Perhatikan bahwa DBCC CHECKDB tidak memeriksa log transaksi sebagai bagian dari operasinya dan tidak dapat mendeteksi kesalahan kerusakan log. Kesalahan 9004 dinaikkan oleh SQL Server Engine itu sendiri.

Tindakan Pengguna

Salah satu tindakan berikut akan memperbaiki kesalahan ini:

  • Pulihkan dari cadangan: Pulihkan dari cadangan bagus yang diketahui untuk memulihkan dari masalah ini. Ada kemungkinan bahwa, jika bagian log database atau cadangan log berisi konten yang rusak, Anda mengalami Kesalahan 9004 pada RESTORE. Dalam situasi ini, log transaksi dalam cadangan rusak.

  • Membangun kembali log: Jika Anda tidak dapat memulihkan dari cadangan, Anda mungkin dapat membuat database online dengan membangun kembali log transaksi. Anda harus memahami dengan cermat kemampuan membangun kembali log transaksi. Ini termasuk kemungkinan hilangnya konsistensi transaksional dalam database Anda. Untuk informasi selengkapnya tentang cara membangun kembali log transaksi, silakan lihat Mengatasi Kesalahan dalam Mode Darurat Database.

  • Periksa Log untuk masalah sistem: Selain itu, periksa log Peristiwa Sistem dan Log Kesalahan untuk mengidentifikasi masalah dalam sistem yang mungkin telah menyebabkan masalah.