Errorlog ‘ları Recycle Öncesi Tabloya Aktarmak …

Reading Time: 3 minutes

Merhaba Arkadaşlar ,

Bugün sizlere anlatacağım yazımda ;

Database Engine Errorlog larını ve SQL Server Agent Errorlog larını Recycle etmeden tabloya yazdırarak log ları tutmaktır.

Bunu nerede ve ne şekilde kullanabilirz. Raporlamalarımızda DBA lerin ErrorLog ları günlük tablodan okuyarak işlem yapmasına vb. gibi yerlerde kullanabiliriz.

ErrorLog ları tutacağımız ve genelde tüm Tuning işlemlerimizi barındıracağımız TuningDBA adında bir database oluşturalım .

 

Bunu takiben Database Engine ErrorLog ‘larını tutacağımız bir tablo oluşturalım .

SQL Server Agent ErrorLog ‘larını toplayacağımız tabloyu oluşturacağız.

Buraya kadar DB ‘mizi ve Tablolarımızı oluşturmuş olduk. Şimdi sıra bu tablolara ErrorLog kayıtlarımızı basmaya geldi .

Peki Database Engin için ErrorLog kayıtlarına nasıl ulaşırız ?

Database Engine ErrorLog larını okuyabilmek için sp_readerrorlog sistem  prosedürünü kullanarak okuyabiliriz.

Örneğin :

1

Yukarıda ki ekranda sonucun bir kısmını görmektesiniz. Peki ben bu sp_ yi kullanarak ErrorLog ‘ları Recycle etmeden DB Engine ErrorLog ‘larını bir tabloya alıp her Recycle  dan önce bu logları oluşturduğumuz tabloda toplayabiliriz.

Sistem prosedürü sonucu 371 kayıt gelmektedir. Aşağıda oluşturduğumuz script ile bu ErrorLog ları tabloya basıyoruz.

Tabloya Select attığımızda kayıt sayısına ulaşabiliriz.

Toplam kayıt sayımız 371 olarak karşımıza gelmektedir. Peki şimdi ErrorLog ‘larımızı Recycle edelim .

SQL Server Database Engine için default olarak 1 adet aktif (ERRORLOG) ve 6 adet arşiv (ERRORLOG.1’den ERRORLOG.6’ya kadar olan dosyalar) olmak üzere 7 adet error log dosyası bulunmaktadır. Her SQL Server servisi restart olduğunda aktif olan log ERRORLOG.1 haline dönüşür ve ondan sonraki error log’lar da bir sıra kayar. Ve sondaki error log’da silinir. (Bu işleme recycle denilmektedir.) Bu işlemi Servis restartının yanı sıra elle tetiklemekte mümkündür.

DB Engine ErrorLog ‘larına aşağıda ki komut ile tetikleyerek Recycle edebiliriz.

Yukarıda ki scripti çalıştırarak Recycle işlemini gerçekleştirmiş olduk. Şimdi sp_readerrorlog sistem prosedürünü çalıştırdığımızda 371 kayıdın 9 adet olduğu görülmektedir.

Bu şekilde Database Engine ErrorLog ‘ları Recycle olmuş oldu. Fakat Recycle dan önce gerekli güncel ErrorLog ‘ları tablomuza almış olduk.

Bildiğiniz üzere SQL Server Agent ‘ın ErrorLog ‘larıda Database Engine ErrorLog ‘ları gibi her Restart işleminde Rcycle olur fakat tek farkı ; Agent Servisi Restart edildiğinde bu Recycle işlemi gerçekleşmektedir.

SQL Server Agent ErrorLog ‘larını tabloya basmak için aşağıda ki scripti çalıştırınız.

Yukarıda ki script sonucu 13 adet güncel ErrorLog tabloya aktarılmıştır.

Aşağıda ki Script ile de SQL Server Agent ErrorLog ‘larını Recycle edilmektedir.

Yukarıda ki script sonucu Recycle işlemi tamamlanmıştır. Hemen test etmek için  ;

sistem prosedürü çalıştırılarak sonucu gözükmektedir. Görüldüğü üzere bir kayıt mevcuttur.

Sonuç olarak planlı bir şekilde yaptığımız Recycle işlemlerimizden önce Database Engine ve SQL Server Agent ErrorLog ‘ları oluşturduğumuz tablolara basılarak her türlü işlemlerimizde kullanabiliriz.

–          Rapor

–          İnceleme vb. Işlemler gibi…

Bir daha ki makalemizde bulışmak dileğiyle …

Leave a Reply

Your email address will not be published. Required fields are marked *