Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!
[h=4][/h]
Resim-1`de sistemuzmani veritabanı için oluşmuş mdf ve ldf uzantılı dosyalar görülmektedir.
SQL Server Veritabanı Log Dosyasının Küçültülmesi
SQL Server üzerinde veritabanı oluşturulacağı zaman dikkat edilmesi gereken en önemli unsur veritabanın ilerde alabileceği boyuttur. Veritabanları oluşturulduğu .mdf uzantılı veri dosyası ve .ldf uzantılı transaction log dosyası oluşmaktadır.Transaction log dosyası veritabanına yapılan işlemlerin ilk olarak yazıldığı ve gerçekleşen hareketlerin(select, insert gibi) yer aldığı bir dosyadır.Veritabanı boyutunun doğru hesaplanmadığı çalışma ortamlarında bir süre sonra disk üzerinde alan sorunu yaşanabilmektedir.Bu sorunun çözümü içinse uygulanacak yöntemlerde biri de log dosyasının küçültülmesidir. Resim-1`de sistemuzmani veritabanı için oluşmuş mdf ve ldf uzantılı dosyalar görülmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–1
Microsoft SQL Server 2005 yönetim aracı olan Management Studio açarak yapmamız gereken işlemlere başlayabiliriz. Resim–2
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–2
Sunucu ile bağlantının sağlanması gereklidir. Bunun için gerekli bilgileri yazarak Connect butonuna basıyoruz. Resim–3
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–3
Log dosyasını küçültmek istediğimiz veritabanını Detach ile ayırıyoruz. Resim–4
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–4
Daha önceki makalemizde belirttiğimiz gibi bu işlemi yapabilmeniz için veritabanı üzerinde connection olmaması gereklidir. OK butonuna basarak veritabanın detach olmasını sağlıyoruz. Resim–5
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–5
Veritabanının log dosyası cut (kes) komutu ile ayrı bir bölüm üzerine yapıştırılır. Eksi veritabanı log dosyası herhangi bir soruna karşın saklanmalıdır. Veritabanı sorunsuz çalışsa bile eski log dosyası yedeklendikten sonra silinmelidir. Resim-6`da eski log dosyasının E:\EskiLog path`ine yapıştırıldığı görülmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–6
Resim-7`de sistemuzmani veritabanın olmadığı görülmektedir. Attach ile veritabanın tekrar gelmesi ve çalıştırılması sağlanmalıdır.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–7
Add butonuna basarak veritabanını eklemek gerekmektedir. Resim–8
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–8
Veritabanı eklendi ancak Resim-9`da görüldüğü gibi Log dosyasının bulanamadığını belirten yazı mesaj kısmına gelmektedir. Çünkü log dosyasını daha önce saklandığı yerden başka bir yere taşıdık.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–9
Log dosyası olmadığı uyarısı önemsemeyerek OK tuşuna basabiliriz. Ancak Attach işlemi tamamlanamaz ve Resim-10`da görülen hata mesajını alırız.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–10
Attach işlemine devam edebilmek için log dosyasını bulunduğu satırı seçer ve daha sonrada Remove tuşuna basarız. Resim–11
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–11
Log dosyasının bulunduğu satırın gitmiş olduğu Resim-12`de görülmekte zaten bizim yapmak istediğimizde yeni bir log dosyasının oluşturulması, böylelikle o veritabanına bağlı log dosyasının küçültülmesi. OK butonuna basarak Attach işlemi tamamlanır.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–12
Veritabanın geldiği görülmektedir. Resim–13
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–13
Yeni log dosyasının oluştuğunu ve çok ufak bir boyuta geldiğini görmekteyiz. Resim–14
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–14
Yukarıda yaptığımız Detach-Attach işlemini Query Analyzer`ı kullanarak SQL komutlarının yardımıyla da yapabilmek mümkün. Bunun için yapılması gereken işlemler ise aşağıda yer almakta. İlk olarak master veritabanı seçilmeli ve yazılacak komutlar buraya yazılmalıdır. sp_detach_db ‘VeritabanınAdı` yazılır ve komut çalıştırılır. Resim–15
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–15
Veritabanın log dosyası daha önce yaptığımız gibi cut ile kesilerek ayrı bir yere yapıştırılır. Resim-16`da log dosyasının yapıştırıldığı yer görülmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–16
Şimdi ise yeni master veritabanına attach komutu yazılır ve işlem tamamlanır.Komutun yazılımı ise şu şekildedir sp_attach_single_file_db ‘VeritabanınAdı` , ‘oluşacak log dosyasının yeri ve Veritabanınadı.log` .Tekrar komut çalıştırılır ve attach işlemi tamamlanır.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–17
Oluşan yeni veritabanı log dosyası görülmekte. Ayrıca boyutu da küçülmüş bir şekilde oluşmakta. Resim–18
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–18
Veritabanın sorunsuz bir şekilde çalıştığı Resim-19`da görülmekte.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Resim–19
Log dosyasının küçültülmesi işlemi ile daha önceki zamanlarda yapılan işlemlerin kayıtları gidecektir. Ancak alan sorunu yaşayan sistem yöneticileri için bu işlemleri yapması gerekebilmektedir. Ayrıca log dosyaları başarısız sistem hareketlerinde, database daha iyi bir hale getirmek için gereken bilgileri de içerir. Bunun için Detach edilmiş eski log dosyasının yedeğinin alınmadan tamamen silinmemesini bir kez daha hatırlatmak isterim.