Selama akhir pekan, sebuah situs web yang saya jalankan berhenti berfungsi, merekam kesalahan berikut di Peraga Peristiwa setiap kali permintaan dibuat ke situs web:
ID Peristiwa: 9001
Log untuk database ' nama database ' tidak tersedia. Periksa log peristiwa untuk pesan kesalahan terkait. Atasi semua kesalahan dan mulai ulang basis data.
Situs web di-host di server khusus, jadi saya dapat RDP ke server dan melihat-lihat. The LDF
file untuk database ada di C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
folder, tetapi berusaha untuk melakukan pekerjaan dengan database dari hasil Management Studio dalam kotak dialog melaporkan kesalahan yang sama - 9001: The log untuk database tidak tersedia ...
Ini adalah pertama kalinya saya menerima kesalahan ini, dan saya telah meng-hosting situs ini (dan lainnya) di server web khusus ini selama lebih dari dua tahun sekarang.
Ini adalah pemahaman saya bahwa kesalahan ini menunjukkan file log yang rusak. Saya bisa mendapatkan situs web kembali online dengan Melepaskan basis data dan kemudian memulihkan cadangan dari beberapa hari yang lalu, tetapi kekhawatiran saya adalah bahwa kesalahan ini menunjukkan masalah yang lebih menyeramkan, yaitu kegagalan hard drive.
Saya mengirim email dukungan di perusahaan web hosting dan ini adalah jawaban mereka:
Tampaknya tidak ada indikasi lain tentang penyebab dalam Log Kejadian, jadi mungkin log tersebut rusak. Saat ini sumber daya memori pada 87%, yang juga mungkin berdampak tetapi tidak mungkin.
Bisakah log hanya "menjadi rusak?"
Pertanyaan saya: Apa langkah selanjutnya yang harus saya ambil untuk mendiagnosis masalah ini? Bagaimana saya bisa menentukan apakah ini memang masalah perangkat keras? Dan jika ya, apakah ada opsi selain mengganti disk?
Terima kasih
sumber
Saya dapat menyelesaikan ini dengan mengambil database offline di Management Studio kemudian segera membawanya kembali online.
dbcc checkdb
telah melempar kesalahan yang diselesaikan setelah melakukan ini. Saya tidak bisa mengatakan mengapa ini bekerja hanya itu melakukan pekerjaan.sumber
Saya memiliki masalah ini baru-baru ini juga dan setelah banyak penelitian tampaknya umum ketika database diatur ke TUTUP OTOMATIS. Saya mengatur semua basis data ke AUTO CLOSE = FALSE. Ini dimulai dengan satu basis data kemudian pergi ke dua dan selanjutnya adalah pada mereka semua. Saya hanya memulai kembali SQL Server Instance Service alih-alih mengembalikan database. Cara lain untuk memperbaiki gejala adalah dengan mengambil basis data yang bermasalah secara offline dan membawanya kembali online.
sumber
MS SQL akan membuat log dari database yang terpengaruh offline untuk menghindari korupsi database. Itu sebabnya Anda mendapatkan kesalahan 9001.
Ketika Anda mengambil database yang terpengaruh offline / online MS SQL akan mengaktifkan log database yang terpengaruh hingga kesalahan terjadi kembali.
Cara lain untuk menyelesaikan ini adalah mengubah opsi Auto_Close ke OFF
http://sqlmag.com/blog/worst-practice-allowing-autoclose-sql-server-databases
sumber
Saya akan menebak / berharap bahwa Anda mendapat serangan untuk disk untuk server sql Anda. jika Anda mencurigai masalah perangkat keras, hal pertama yang akan saya lakukan adalah menjalankan raid maintenance / alat diagnostik Anda.
hal kedua (mungkin bersamaan jika Anda bisa) adalah menjalankan dbcc checkdb pada basis data (mungkin juga membuat database sistem Anda).
sumber
Oke, langkah pertama, buat cadangan log dan file mdf Anda ke drive yang sama sekali berbeda. SEGERA! (salinan file)
Juga, coba lakukan pencadangan basis data lengkap.
Selanjutnya, coba yang berikut ini. Menggunakan database Anda saat ini, lepaskan, jika Anda dapat dan kemudian menghapus file log, atau memindahkannya ke lokasi yang sama sekali berbeda pada disk. Kemudian pasang kembali database, dan itu akan muncul di gui dengan file log, klik hapus (atau hapus) untuk file log sehingga tidak muncul, dan kemudian klik ok. Pada dasarnya melampirkannya tanpa log, akan memaksanya untuk membuat file log untuk database di lokasi default.
Biarkan aku tahu.
sumber
Ya, saya juga mendapatkan masalah yang sama, itu berkaitan dengan kesalahan tempDb 9001 yaitu log tidak tersedia. Kami memulai kembali layanan dan semuanya baik-baik saja.
Masalah di balik ini adalah masalah SAN atau penyimpanan, sementara operasi penulisan I / O, itu tidak dapat menulis selama lebih dari 15 detik.
sumber
Kemarin, saya menerima kesalahan yang sama "log untuk basis data '%' tidak tersedia. Kesalahan fatal 9001, msg 21. Silakan hubungi administrator Anda" -
Penanganan masalah - Saya memeriksa 'TempDB' tetapi tidak dapat diakses dengan cara yang sama dari basis data sistem. Maka sebelum pergi untuk opsi perbaikan, saya cukup me-restart layanan SQL untuk contoh itu dan masalah terselesaikan :) :)
sumber
Saya telah melihat ini terjadi ketika tidak ada ruang disk yang tersedia untuk ekspansi log; dapatkah Anda memverifikasi ada cukup ruang pada C: \, dan bahwa log Anda dikelola, yaitu didukung jika Anda berada dalam mode pemulihan penuh.
Saya akan memindahkan ldf Anda (dan mdf) dari volume boot jika Anda memiliki opsi.
sumber