SQL Server Error Log Dosyasını Filtreleyerek Okumak(Like or Not Like)

23 Eyl by NURULLAH ÇAKIR

SQL Server Error Log Dosyasını Filtreleyerek Okumak(Like or Not Like)

SQL Server Error Log dosyası her DBA’in problem anında, sorunu anlamak ve çözüm üretmek için ilk baktığı yerlerdendir. Biz bu makalede Error Log dosyasının tamamını filtresiz okumayı ve filtreleyerek(Şu kelimeleri içerenler gelsin veya şu kelimeleri içerenler gelmesin)  okumayı inceleyeceğiz. Aşağıdaki şekilde Error Log dosyasını filtresiz olarak okuyabilirsiniz.

 

 

Error Log Dosyası açıldığında aşağıdaki gibi altı çizili Filter yazan yere tıklayarak filtre koyabilirsiniz.

 

 

Message contains text’e error log dosyasında içermesini istediğiniz kelimeyi yazarak Apply filter’a tıkladıktan sonra ok’e basmalısınız. Bu işlemi yaptığımızda aşağıdaki gibi bir sonuca ulaştık. Message kısmında “backed up” içermeyen hiçbir mesaj artık görünmüyor.

 

 

Error Log dosyası çok karışık olduğunda sadece görmek istediklerimizi set ederek bu karışıklıktan kurtulabiliyoruz.

 

Bazen görmek istediklerimizi seçmek yerine görmek istemediklerimizi set etmemiz ve gereksiz bilgilerden arınmış error log dosyasını okumak isteyebilirsiniz. Script kullanarak bu işlemi aşağıdaki gibi gerçekleştirebilirsiniz.

CREATE TABLE #read_error_log
  (
     logdate      DATETIME,
     processinfo  VARCHAR(200),
     errorlogtext VARCHAR(max)
  )
INSERT INTO #read_error_log

EXEC master.dbo.Xp_readerrorlog
  0,
  1,
  N'',
  N'',
  '20160922 00:00',
  '20160924'

SELECT * FROM   #read_error_log
where errorlogtext not like '%participating in an%' and errorlogtext not like '%Error: 976, Severity: 14, State: 1.%'
and errorlogtext not like '%Log was backed%'
ORDER  BY logdate DESC
TRUNCATE TABLE #read_error_log
DROP TABLE #read_error_log

Script’te gördüğünüz gibi Error Log dosyasının tamamını okumak için EXEC master.dbo.Xp_readerrorlog  script parçası kullanılıyor. Yukarıdaki scriptte bir çok parametre vererek çalıştırdık. Bu parametreleri açıklayım.

 

İlk parametre 0

Bu şu anki aktif log dosyasını okuduğumuz anlamına geliyor. SQL Server Error Log dosya sayısı ile ilgili “SQL Server Error Log Dosya Sayını Arttırma” isimli makalemi okumanızı tavsiye ederim.

İkinci parametre 1

Bu SQL Server Error Log’u okuduğumuz anlamına geliyor. 2 olsaydı SQL Server Agent Error Log’u okuyor olacaktık.

Üçüncü parametre N”

Error Log’daki Message kısmında gelmesini istediğimiz kelime.  Yukarda filter’da yaptığımız işlemin kod ile yapılış şekli. Biz N” yazarak bu seçeneği seçmedik.

Dördüncü parametre N”

Üçüncü parametre ile aynı. Birden fazla kelime ile aramak isterseniz ikinci filtrenizi bu parametrede belirliyorsunuz. Biz N” yazarak bu seçeneği seçmedik.

Beşinci parametre  ‘20160922 00:00’

Başlangıç Tarihi. Hangi tarihten başlayarak arama yapmak istiyorsak buraya o tarihi yazıyoruz.

Altıncı parametre  ‘20160924’

Bitiş Tarihi. Hangi tarihe kadar arama yapmak istiyorsak o tarihi yazıyoruz.

 

Script’in devamında where errorlogtext not like’lı ifadeler görüyorsunuz. Log dosyasının içersinde görmek istemediğimiz ifadeleri bu not like’lı kısımlara yazıyoruz. Sorgunun sonuna AND NOT LIKE… şeklinde ifadeler ekleyerek görmek istemediğiniz sorgu sayısını arttırabilirsiniz. Bu şekilde sadece ihtiyacımız olan bilgileri içerecek bir Error Log dosyası elde etmiş oluyoruz.

Loading

Bir yanıt yazın

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