SQL Server Transaction Log Nedir

2 Eki by NURULLAH ÇAKIR

SQL Server Transaction Log Nedir

SQL Server’da gerçekleşen her transaction’ın ve bu transaction’lar tarafından gerçekleşen veritabanı modifikasyonlarının  tutulduğu log dosyasıdır. Transaction Log dosyasındaki her kayıt unique(tekil,eşsiz) olarak bir numaraya sahiptir. Buna LSN(Log Sequence Number) denir.LSN2 her zaman LSN1’den büyüktür. Transaction Log’ları restore ederken message kısmında lsn’i görebilirsiniz.

SQL Server’ın mimarisini anlamak için Transaction Log’un önemini kavramak gerekir. Her veritabanında en az 1 tane transaction log dosyası bulunur. Birden fazla transaction log dosyası eklenebilir fakat aynı anda sadece 1 log dosyasına yazma işlemi yapılır. Yani performansı arttırmak maksadıyla  farklı bir diskte transaction log dosyası oluşturmak işe yaramaz. Ama bazen transaction log dosyasının olduğu diskte yer kalmayınca başka bir diskte 2.bir transaction log dosyası oluşturarak bu sorunu aşarız.

Örneğin SQL Server’ın çalıştığı sunucunuzda beklenmedik bir hata oluştu ve kapandı ya da restart oldu. Böyle bir durumda SQL Server açılırken veritabanını tutarlı bir yapıya getirebilmek için transaction log dosyasını kullanır. Transaction Log dosyasından aldığı bilgiyle tamamlanmış transaction ları roll forward yaparak data file’a yazar, tamamlanmamış transactionları da roll back yapar. Bu şekilde veritabanı tutarlılığını garanti altına almış olur. Bu işlemi daha detaylı algılayabilmek için “Database Checkpoint Nedir” isimli makalemi okumanızı tavsiye ederim.

Veritabanında bir sıkıntı olduğunda transaction log dosyası backup’larını kullanarak en yakın ana dönebiliriz. “Veritabanı recovery modelleri” makalemi okumanızı tavsiye ederim.

SQL Server Transaction Log dosyası bir ya da birden fazla sanal log dosyasından oluşur. Bu sanal log dosyaları performansı ciddi anlamda etkileyebilir. “Vlf(Virtual Log File) count nedir” isimli makalemde detaylarına ulaşabilirsiniz.

Transactional Replication,Database Mirroring,Always ON ve Log Shipping Transaction Log dosyasını kullanır.

Transaction Log dosyasını yakından ilgilendiren “Vlf(Virtual Log File) count nedir” isimli makalemi okumanızı tavsiye ederim. Bir çok durumda hayat kurtarabilir.

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir