- Ana Sayfa
- Veritabanları
- İşlem günlükleri nasıl okunur?
İşlem günlükleri nasıl okunur?
Bu sayfada
- İşlem günlükleri nelerdir?
- İşlem günlüklerini okuma
- İşlem günlüklerini fn_dblog() komutunu kullanarak okuma
- İşlem günlüklerini fn_dump_dblog() komutunu kullanarak okuma
- İşlem Günlüklerini Veritabanı Tutarlılık Denetleyicisi (DBCC) PAGE'i kullanarak okuma.
- İşlem günlüklerinizi verimli bir biçimde izleyebiliyor musunuz?
İşlem günlükleri nelerdir?
İşlem günlükleri, SQL Server'ınızda gerçekleştirilen tüm işlemler hakkındaki bilgileri içerir. İşlem günlükleri, C:\Program Files\Microsoft SQL Server\MSSQL olarak belirlenmiş varsayılan veritabanı klasörü içinde tek bir LDF dosyasında saklanır. Her işlem günlüğünün, ilgili günlükle ilişkilendirilmiş benzersiz bir Günlük Sıra Numarası (LSN) bulunur. İşlem günlüğü dosyası yüksek hacimde veri içerir ve bunların manuel olarak analiz edilmesi karmaşık bir sürecin izlenmesini gerektirir.
İşlem günlüklerini okuma
Microsoft, SQL Server işlem günlüklerini görüntülemek, izlemek ve denetlemek için herhangi bir özel araç sunmamaktadır. Ancak, işlem günlüklerinizi okumak için başvurabileceğiniz birkaç yöntem bulunmaktadır. Bunlar
- fn_dblog()
- fn_dump_dblog()
- DBCC PAGE komutu.
İşlem günlüklerini fn_dblog() komutunu kullanarak okuma
Bir veritabanında fn_dblog() işlevi çağrıldığında, bu işlev, çevrimiçi ve etkin işlem günlüklerini görüntüleyebilmenizi sağlar. Bu işlev, getirilecek ilk ve son günlük girişlerinin LSN'sini belirten iki parametreyi alır. Etkin ve çevrimiçi olan tüm günlükleri görüntülemek istediğinizde, fn_dblog() işlevine parametre olarak (NULL, NULL) değerini ekleyebilirsiniz.
İşlev aşağıdaki gibi yürütülebilir:
SELECT * FROM fn_dblog(NULL,NULL)
Bu işlev sonucunda varsayılan olarak 129 sütunlu bir tablo verilir.
İşlem günlüklerini fn_dump_dblog() komutunu kullanarak okuma
fn_dump_dblog() çevrimiçi ve yedek işlem günlüklerini görüntüleyebilmenizi sağlar. 63 parametreyi alır ve bu işlevin yürütülmesi için bunların tamamının belirtilmesi gerekir. Tüm işlem günlüklerini almak için parametreler için DEFAULT değerini kullanabilirsiniz.
Bu işlev aşağıdaki gibi yürütülebilir:
SELECT * FROM fn_dump_dblog
(NULL,NULL,NULL,NULL,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,
DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,
DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,
DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,
DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,
DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,
DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,
DEFAULT,DEFAULT,DEFAULT,DEFAULT, DEFAULT)
Bu işlev sonucunda da varsayılan olarak 129 sütunlu bir tablo verilir.
fn_dump_dblog() işlevini kullanmanın bir avantajı, WITH STOPBEFOREMARK ifadesini kullanarak veritabanınızı belirli bir zaman noktasındaki haline geri döndürebilmenizi sağlamasıdır. Bu, veritabanı yöneticilerinin işlem hatalarını düzeltebilmesi veya veritabanı performansını etkileyen değişiklikleri geri alabilmesini mümkün kılar.
İşlem Günlüklerini Veritabanı Tutarlılık Denetleyicisi (DBCC) PAGE'i kullanarak okuma
DBCC page komutu, SQL Server'daki herhangi bir sayfayı incelemek için kullanılır. İşlem günlüklerini bu komutu kullanarak görüntülemek için bir çıktının bir sonuç penceresine yönlendirilmesine yardımcı olan izleme bayrağı 3604'ü etkinleştirmeniz gerekir. İşlem günlüklerini görüntülemek için kullanılacak 'DBCC page' komutu aşağıdaki gibi olabilir:
DBCC TRACEON (3604, -1)
DBCC PAGE ( {'Database name' | DB_ID}, File_number, Page_number [, output={0|1|2|3} ])
Bu komut ile yorumlanması ve analiz edilmesi yine de zor olacak bir işlem günlükleri sayfası görüntülenir.
İşlem günlüklerinizi verimli bir biçimde izleyebiliyor musunuz?
Yukarıda belirtilenlerin tamamı Microsoft tarafından belgelendirilmemiş sistemlerdir ve bunların kullanılmasıyla ilişkili risk kullanan kişiye aittir. İlgili işlevlerin her ikisinin de sonucunda varsayılan olarak 129 sütun verildiğinden işlem günlüklerini fn_dblog() ve fn_dump_dblog() işlevleri aracılığıyla görüntülenmesi ve analiz edilmesi zordur. İlgili ve gerekli bilgilerin elde edilmesi için bu verilerin sorgular kullanılarak daha da ayrıntılı olarak incelenmesi gerekir. Uygulamada, veritabanı yöneticilerinin anormallikleri belirlemek üzere işlem günlüklerini görüntülemesi, yorumlaması ve analiz etmesi oldukça zordur. İşlem günlüklerinin bu yöntemlerle denetlenmesi verimli bir çözüm değildir. İşlem günlüklerinin okunması ve denetlenmesi için bunun yerine bir günlük yönetimi çözümünden faydalanabilirsiniz.
EventLog Analyzer, işlem günlüklerinizi toplayabilen, ayrıştırabilen, dizinleyebilen ve analiz edebilen bir günlük yönetimi çözümüdür. SQL Server işlem günlükleri hakkında, işlem günlüğü yedekleme raporunu içeren kapsamlı raporlar oluşturur. EventLog Analyzer'ın kullanılmasıyla SQL örneğinizde gerçekleşen anormal etkinlikler hakkında gerçek zamanlı uyarıların yapılandırılması mümkündür. Bu, DB yöneticilerini SMS ve e-posta yoluyla potansiyel bir tehdit veya saldırı konusunda bilgilendirir. EventLog Analyzer'ın SQL Server denetimi özelliklerine göz atın.