Nis
7th

Mssql Server 2005 - Transaction Logs (İşlem Günlükleri)

Kategori Webmaster | Posted by admin | 461 Defa Okunmus.


Veritabanlarını bilgilerimizi saklamak için kullanırız. Bu saklama işlemini gerçekleştirirken hem yerden kazanmak isteriz, hem verilerimizi güvenli şekilde elde tutmak isteriz. Bunun yanı sıra, en optimum ayarları elde etmemiz gerekir ki, performanstan kazanç sağlayalım.

Bilgilerimizi saklarken veritabanı nesnelerini ve transaction log (işlem günlüğü) dosyalarını kullanırız. Herbir veritabanı bir tane veri dosyası ve log (günlük) dosyası içerir. Log (günlük) kayıtları her bir transaction’da (işlemde) başlar .Log (günlük) dosyası, veritabanında meydana gelen değişiklikleri tutan transaction log (işlem günlüğü) dosyasını içerir. Transaction log (işlem günlüğü) dosyaları, SQL Server içinde, veritabanında meydana gelen bütün değişiklikleri, veritabanı için ayrılmış olan alanda saklar. Bütün düzeltme işlemleri, veritabanına yazılmadan önce, transaction log (işlem günlüğü) dosyalarına yazılır. Transaction log (işlem günlüğü) dosyaları veritabanı aktivitelerini devamlı olarak kaydeder. Bu sayede, veritabanın başına herhangi bir şey geldiğinde, bu dosyaları veritabanı kurtarma işlemlerinde kullanabiliriz.

Veritabanı Dosyaları

Oluşturulan veritabanı (bütün veritabanları) birincil dosya (primary file) ve transaction log (işlem günlüğü) dosyalarına sahiptir. Bunun yanı sıra, veritabanı ikincil dosyaya da (secondary file) sahip olabilir. Dosya uzantıları aşağıdaki gibidir:

  • *.mdf: primary (birincil) dosya uzantısı
  • *.ndf: secondary (ikincil) dosya uzantısı
  • *.ldf: transaction log (işlem günlüğü) dosya uzantısı.

Elimizdeki bilgileri, veritabanlarına ve bunun akabinde veritabanlarını sakladığımız yer olan dijital dünyaya emanet olmuş oluruz. Dijital ortanda saklanması açısından, verilerin başına her an herhangi bir sorun gelebilmesi sebebiyle, veri kaybına sebep olabilecek bir şeyler olabillir. İşte tam bu noktada transaction log (işlem günlüğü) dosyaları, veritabanını geri yüklemek için gerekli bütün bilgileri tutmasıyla, önemini bize hissettiriyor.

Transaction log (işlem günlüğü) dosyaları veri dosyaları gibi sayfalar içermezler. Bunun yerine, günlük kayıtlar gibi, kayıt bilgilerini tutarlar. Varsayılan değer olarak, log (günlük) dosyalarının uzantıları: *.ldf’dir. Veri dosyalarında olduğu gibi .ldf uzantısı gerekmeyebilir. Fakat log (günlük) dosyasının tanımlanması açısından kullanılması tavsiye edilir. Log (günlük) dosyaları varsayılan değer olarak otomatik büyümesi %10 olarak ayarlıdır. Veri dosyalarında olduğu gibi, bu ölçüm ihtiyaca ve isteğe göre ayarlanabilir.

Bir veritabanı oluşturduğumuzda verilerin nasıl ve nereye saklanacağı hakkında bilgimiz olması gerekir. Bunun için de gerekli olan bellek miktarı belirlenmesi gerekir. Bu belirleme işlemlerini Enterprice Manager aracılığı ile yapabiliriz.

Örnek Uygulama:

Veritabanının ismini, veritabanı dosyalarının yerini ve boyutunu belirtmek suretiyle bir veritabanı oluştururuz. Yeni bir veritabanı oluşturduğumuzda dikkat edersek, içerisinde belirli tablolar ve saklı yordamlarla beraberinde oluşur. Bu tablo ve saklı yordamlar, oluşturulan veritabanı, model veritabanının bir kopyası olarak oluşturulduğu için gelmektedir.

Bunun yanı sıra, bir veritabanı oluşturmak, o veritabanı için ayrıca bir transaction log (işlem günlüğü) dosyası oluşturmak demektir. Transaction log (işlem günlüğü) dosyası bir tablo değildir. Veritabanı içinde ayrı olarak işlem gören bir dosyadır.

Şimdi SQL Server 2000 üzerinde bir veritabanı oluşturalım ve transaction log (işlem günlüğü) dosyasının özelliklerini belirleyelim.

Databases üzerinde sağ tıklayarak New Database diyoruz. Veritabanı özellik penceresinin üçüncü sekmesi Transaction Log sekmesidir. Bu sekme sayesinde veritabanı için tutulan transaction log (işlem günlüğü) dosyasının özelliklerini, isteğimize ve ihtiyacımıza göre ayarlayabiliyoruz.

Şimdi buradaki özellikleri teker teker inceleyelim:

File Name: Transaction Log (İşlem günlüğü) dosyamıza bir isim veriyoruz. Kendi varsayılan uzantısı *.ldf’dir.

Location: Transaction log (işlem günlüğü) dosyasını nerede saklayacağını belirtiyoruz. Varsayılan değer olarak, SQL Server’in kurulduğu server üzerinde bir klasör belirler.

Initial size(MB): Boyutunun başlangıç olarak kaç MB’tan başlayacağını belirtiyoruz. En az değer 1 MB’tır. (Buraya 0 değerini girmeye çalışırsanız, bu değeri SQL Server otomatik olarak 1 Mb olarak değiştiriyor.)

Not: Transaction log (işlem günlüğü) yeterli alana sahip değilse, SQL Server işlemleri kaydetmez ve veritabanında değişiklik yapılmasına izin vermez.

Automatically grow file: Transaction log (işlem günlüğü) dosyasının otomatik olarak büyüyeceğini belirtiyoruz.

File Growth: Megabayt megabayt’mı (in megabytes) yoksa, belirli bir yüzde (by percent) ile mi büyüyeceğini belirtiyoruz.

In megabayts: Transaction log (işlem günlüğü) dosyası için, daha fazla alan gerektiğinde, burada belirlediğimiz rakam boyutunda büyüme gerçekleşecektir. Varsayılan değer olarak 1 MB gelmektedir. Bunun anlamı, ilk etapta Initial size’da belirlediğimiz alan biterse, SQL Server transaction log (işlem günlüğü) dosyasını otomatik olarak 1 MB büyütecektir. Aynı şekilde, büyüme işlemi gerçekleşip, tekrar transaction log (işlem günlüğü) dosyası için alan gerekirse, otomatik olarak 1 MB büyüme gerçekleşecektir.

By percent: Transaction log (işlem günlüğü) dosyası için, daha fazla alan gerektiğinde, burada belirlediğimiz rakam boyutunda yüzde olarak büyüme gerçekleşecektir. Varsayılan değer olarak %10 gelmektedir. Bunun anlamı, ilk etapta Initial size’da belirlediğimiz alan biterse, SQL Server transaction log (işlem günlüğü) dosyasını otomatik olarak kendi boyutunun %10′u kadar büyütecektir. Aynı şekilde, büyüme işlemi gerçekleşip, tekrar transaction log (işlem günlüğü) dosyası için alan gerekirse, otomatik olarak %10 büyüme gerçekleşecektir.

Maximum file size: Büyümeyi sınırlamak için kullandığımız ayardır.

Unrestricted file growth: Büyümeyi sınırlandırmamak için kullandığımız ayar. Herhangi bir boyut değeri belirtilmezse, dosya disk dolana kadar büyür.

Restrict file growth (MB): Transaction log (işlem günlüğü) dosyamızın boyutu burada belirlediğimiz boyuta ulaştığında, büyüme işlemi gerçekleşmeyecektir. Transaction log (işlem günlüğü) dosyasının boyutunu burada değer ile sınırlandırmış oluruz. Varsayılan değer olarak 2 MB gelir.

Transaction log dosyasını oluşturduktan sonra, gidip oluşturduğumuz alana bakarsak, verdigimizDosyaAdi_Log.ldf isimli bir transaction log (işlem günlüğü) dosyasıyla karşılaşırız.

Not: SQL Server’da veritabanlarını taşımak için *.mdf (veri dosyaları) ve *.ldf (log -günlük- dosyalarını) taşımak yeterlidir. Taşıdığımız yerde Attach Database diyerek veritabanını sunucuya ekleneyebiliriz.

Transaction Log (İşlem Günlüğü) Mimarisi

SQL Server her bir fiziksel transaction log (işlem günlüğü) için bir çok sanal dosya tutar. Bu sanal dosyaların sayısı ve boyutu SQL Server tarafından dinamik olarak belirlenir. SQL Server, bu sanal dosyaların sayısını, veritabanı kurtarma (recovery) işleminde verim sağlamak amacıyla, en az sayıda tutmaya çalışır. Herbir sanal dosya yavaşlamaya sebep olur. Log (günlük) dosyası oluşturduğumuzda, otomatik büyüme ayarı varsayılan olarak gelir.

Not: Herbir veritabanı dosyası, yalnızca tek veritabanı tarafından kullanılır.

Herhangi bir güncelleme(update), ekleme (inserts), silme (delete), tablo oluşturma ve silme, dizin (index) oluşturma ve silme, sistem tablolarında değişiklik meydana geldiğinde, DDL durumunda işlem günlüklerinde tutulur.

Transaction log dosyalarının yaptığı işlem, veritabanında meydana gelen değişiklikleri kayıt ekmektir. Bu suretle veritabanında ne gibi değişiklikler olduğunu kontrol edebiliyor olacağız.

Kaynak: Kemal Çınar


“Mssql Server 2005 - Transaction Logs (İşlem Günlükleri)” yazısı için 1 yorum yapılmış.

  1. aiyqfszlu @ 11 Nis 2008 | Yanıtlayın

    mN4Mux jncacfuqhefq, [url=http://qctagknkkfxm.com/]qctagknkkfxm[/url], [link=http://ozisrnkakuul.com/]ozisrnkakuul[/link], http://bwjcnjtqbyrq.com/

Yorum Yapın







Değerli Webkafe.net Ziyaretçileri eğer güncel web teknolojleri, internet, ve teknoloji magazin konularında kendinize güveniyor ve yazarımız olmak aynı zamanda eklediğiniz haber ve yazılar ilke gelir kazanmak istiyorsanız gurkancelik21[@]hotmail.com mail/msn adresinden mail atarak iletişim kurabilirsiniz.