Bu makalede ikinci bir log dosya oluşturma işlemini ele almış olacağım. Karşılaşmış olduğum bir sorun üzerine bu makaleyi yazma gereği duydum. Yazım 2 makaleden oluşmaktadır. Bir gün bir veritabanımızın ldf dosyasının boyutu maksimum sınır olan 2 TB olmuştu böyle bir sorunu çözmek için ikinci bir log dosyası oluşturmuştuk. Neden oluşturduğumuz bu makaleden sonraki makalenin konusu olmuş olacak. Çünkü ikinci bir log dosyası oluşturmak mantıklı değil neden diye soracaksanız bir veritabanında sadece bir log dosyası aktif olabilir. Kısacası ya ldf dosyamız dolmuştur veya ldf dosyamızın olduğu diskte yer olmadığından başka bir disk altında büyütülür. Başka bir disk altında büyütmek tek sunucu üzerinde çalışan databaseler için geçerlidir. AlwaysOn gibi high availability çözümlerinde farklı bir disk altında olması sistemin çalışmamasına sebep olacaktır.
Herhangi bir database altında birden fazla log dosyası olduğunda sql server sadece bir log dosyasına yazar demiştik. Bu yazma işlemi için hangi log dosyasının autogrowth değeri açıksa veritabanı altında gelen logları yeni belirmiş olduğumuz ldf’e yazar. Sadece autogrowth değerine bakmaz açık olan ldf’e baktıktan sonra diskte yeterli alan olup olmadığına da bakar.
İkinci bir log dosyası oluşturmak için ilgili veritabanına sağ tıklayıp properties’a girilir.
Properties dedikten sonra files sekmesinde sağ alt tarafta bulunan add butonuna tıklayarak ikinci bir log dosyası oluşturulur.
Add dedikten sonra gelen ekranda Logical Name kısmından yeni oluşturulacak log için bir isim veriyoruz. İsmini TEST2_log2 olarak belirlemiş oldum.
Daha sonra File Type kısmında türünü LOG olarak seçiyoruz. Bu seçimi yaptıktan sonra filegroup kısmında log dosyalarının herhangi bir filegroup’u olmadığı için Not Applicable görünmektedir.
File type kısmında log seçiyoruz. Dikkat edersek Filegroup kısmı Not Applicable oldu. Daha sonra size kısmında log dosyasının başlangıç değerini ve uygun bir autogrowth değeri set ediyoruz.
Dikkat edersek ikinci log dosyamızda oluşmuş oldu. İki log dosyamızın autogrowth değerini aktif veya pasif olduğunu görmek için Autogrowth / Maxsize kısmındaki 3 noktaya tıklayıp görebiliriz.
Yukarıdaki resimdede görüldüğü gibi iki log dosyamızdada Enable Autogrowth değeri açık. Sql server burada şu yöntemi kullanır. İlk log dosyasının enable autogrowth değeri aktifse bu log dosyasına gelen transaction için yeterli alan olup olmadığı kontrolü yapar eğer yeterli alan varsa ilk log dosyasına yazar. İlk log dosyası enable autogrowth aktif olduktan sonra transaction için yeterli alan yoksa oluşturmuş olduğumuz ikinci log dosyasına yazar. İkinci log dosyasında ldf dosyamız büyümeye devam eder. İkinci log dosyasından büyümesine karar verdikten sonra ilk log dosyasının Enable Autogrowth değerini pasif değere çekiyoruz.
Bu makalede ikinci bir log dosyası oluşturarak başlangıçta oluşmuş log dosyasını pasif hale getiriyoruz. Database’in yeni oluşan ldf üzerinde büyümesini sağlıyoruz. Bir sonraki makalede ise oluşturulmuş ikinci log dosyasını shrink yöntemiyle ilk log dosyası üzerinde büyütmüş olacağız.
0 Yorum