Bu yazımda çeşitli sebeblerle bozulmuş olan MS SQL veritabanı log dosyasının nasıl onarılacağını, LDF dosyası olmadan bir db’nin nasıl SQL’e attach (eklenme) yapılacağına dair küçük ipuçları vereceğim.
Öncelikle SQL veritabanı için Log dosyası nedir, neden önemlidir gibi sorulara yanıt arayalım.
Log; her mdf dosyasının yanında bulunan ve veritabanına ait transaction ( işlem ) loglarını tutan bir veritabanı türüdür. Gerçek veri tutmasa dahi, SQL için hayati öneme sahiptir. Bu veritabanını silerseniz, asıl veritabanınız suspect mod’a düşecektir.
Fakat zaman olur ki, bozulabilir, silinebilir. Bu durumda MDF veritabanını tekrar attach etmek için birkaç seçeneğimiz var.
aşağıdaki komut setini sql management studio’da iken “new query” diyerek bir “query” penceresi açarak yapıştırıp kendimize göre düzenliyoruz.
USE [master]
GO
EXECUTE sp_attach_single_file_db
@dbname='DATABASE_ADI',
@physname=N'DATABASE_YOLU'
GO
DATABASE ADI : ekleyeceğiniz DB adı
DATABASE YOLU : mdf dosyasınızın yolu ( Örnek : c:\data\databaseadi.mdf)
bu komut setini çalıştırdıktan sonra gösterdiğiniz mdf dosyası log dosyası olmadan attach olacaktır.
Kolaylıklar dilerim.
SQL Server mantıksal tutarlılık tabanlı bir G/Ç hatası algıladı: yanlış toplam denetimi (beklenen: 0x0c3ef9ac; gerçek: 0x998ea294). ‘D:\INTERBOS\INTER_BOS.mdf’ dosyasında 00000000000000000 ofsetinde veritabanı kimliği 0’daki (0:0) sayfasının okunması sırasında meydana geldi. SQL Server hata günlüğündeki veya işletim sistemi hata günlüğündeki ek iletiler daha fazla ayrıntı sağlayabilir. Bu, veritabanı bütünlüğünü tehdit eden ciddi bir hata durumudur ve derhal düzeltilmesi gerekir. Tam bir veritabanı tutarlılık denetimi (DBCC CHECKDB) tamamlayın. Bu hata birçok faktörden kaynaklanabilir; daha fazla bilgi için SQL Server Books Online’a bakın.
Veritabanının header’ı (başlık bilgisi) bozulmuş. Bunu makalede anlatılan yöntem ile çözemezsiniz. Çözebilirsiniz ama daha farklı bir süreç ve yol gerektirir.