Sql hataları The transaction log for database 'veritabanı' is full.

Kullanmış olduğumuz Sql 2005 serverda aşağıdaki hata ile karşılaştık.



The transaction log for database 'veritabanı' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases



Burada transaction log, harddisk üzerindeki partionda yer kalmadığı için işlemi gerçekleştiremiyor ve bu hatayı döndürüyordu. Doğal olarak veritabanı ile ilişkili web siteleri veri okuyamıyor ve hata veriyorlardı.



Sorunu çözmek için internette küçük bir araştırma yapınca bir sürü yaklaşım sunan sayfalar gördük. Kimi ilgili veritabanın recovery modunu full'den simple çekilmesi gerektiğini önermiş. Kimi ilgili log dosyasını truncate etmekten bahsetmiş. Kimi ilgili log dosyasını shrink etmekten bahsetmiş. Sonuçta biz bunların hepsini denedik. Ancak her yöntemi denediğimizde yukarıdaki hatayı alıyorduk. Hata almamızın sebebi veritabanı üzerinde hala açık connectionların olması işlemi engelliyordu.



Sorunu çözmek için daha önce günlük aldığımız backuplardan birini yeni bir veritabanı ismiyle restore ettik.  Restore ettiğimiz veritabanını shrink sekmesinde hem database hem de log files bazında shrink ettik. Server üzerindeki sql server service stop edildi. Eski veritabanını bring offline yapıp sql manager üzerindeki activity monitor üzerindeki bağlantıları kill process ile kapattık. Bu arada mdf ve ldf dosyalarını rename ettik. Servisi tekrar çalıştırdıktan sonra eski veritabanını sildik. Yeni restore ettiğimiz veritabanını tekrar shrink ettikten sonra eski veritabanın adıyle rename ettik. İlgili siteler geri geldi.

Yorumlar

Bu blogdaki popüler yayınlar

22.06.2020 - 26.06.2020 arası işler

Asp.net RestSharp ile data post etmek

List Box Item içindeki elemanları aşağı veya yukarı taşımak