Mssql Server Output File ve Output File Cleanup Oluşturmak

Bazen kullanıcılar herhangi bir index veya backup job’ı tanımladıktan sonra job’ın başarısız olduğunda command log tablosunda herhangi bir şey görülmez. Jobın çalışmasında bir sıkıntı varsa görünür ama kill veya sistemsel herhangi bir durumda görülmez. Aşağıdaki resim ola hallengren scriptleri sonucu oluşmuş command log tablosundan çalışmış olan index joblarımızda hatamızın sebebini göremeyiz.

EndTimeve ErrorNumber Null görünmesi işlemin başarısız olduğunu görülmektedir. Sebebini öğrenmek için Output file oluştururuz.

Sql server error log’una baktığımızda sadece ilgili saat diliminde yaşanan sorunu görebiliriz. Ama job altında oluşturacağımız output file ile genel olarak sorunun neden kaynaklandığını kaydettiği txt içerisinde görmüş olacağız.

İlgili step’in advanced bölümünde output file kısmı ilgili jobın çalışma durumunu txt uzantısına yazmaktadır. Ola hallengrenn scriptlerin de de ilgili yapı mevcuttur. Ola hallengren scriptlerini çalıştırdıktan sonra Output File Cleanup adında oluşan txt’leri silmek için bir job da oluşmaktadır. Komutun başlangıç kısmına ilgili klasörün disk uzantısının yazılması gerekmektedir.

İlgili dizin: Sadece başlangıç kısmına dosya uzantısının(M:\YEDEK7\OlaOutput\) eklenmesi gerekmektedir. Diğer ifadeler default olan ifadeler.

Komut başlangıcına M:\YEDEK7\OlaOutput\ gibi bırakılırsa sql server’ın kurulu olduğu disk uzantısında bulunan log klasörüne yazmaktadır. Default olarak gelmektedir.

M:\YEDEK7\OlaOutput\$(ESCAPE_SQUOTE(JOBNAME))_$(ESCAPE_SQUOTE(STEPID))_$(ESCAPE_SQUOTE(DATE))_$(ESCAPE_SQUOTE(TIME)).txt

Ola hallengren scriptlerinde Output File Cleanup adında job oluşur. Bu job ilgili klasördeki txt uzantılarını silmektedir. Bir zamanlayıcı ayarlanarak belirli aralıklarla silinebilir. Bu script default olarak gelmektedir. Sadece dosya uzantısının(M:\YEDEK7\OlaOutput) eklenmesi gerekmektedir. Scheduler ile her gün belirli bir anda çalıştırılabilir.
Default olarak oluşturulan bu joblar herhangi bir scheduler verilmezse çalışmaz. Ayrıca Olahallengren procedure ile oluşan jobların advanced bölümünde output file uzantısı görünür. Genel olarak default olarak C diski altındadır. Bunu yeni bir klasör oluşturarak düzeltiriz. Aşağıdaki komutlada 30 gün öncesine ait txt uzantıları silmektedir.

Default olan gelen script:

Komut aşağıdaki gibi bırakılırsa sql server’ın kurulu olduğu disk uzantısında bulunan log klasörüne yazmaktadır.

cmd /q /c "For /F "tokens=1 delims=" %v In ('ForFiles /P "$(ESCAPE_SQUOTE(SQLLOGDIR))" /m _.txt /d -30 2^>^&1') do if EXIST "$(ESCAPE_SQUOTE(SQLLOGDIR))"\%v echo del "$(ESCAPE_SQUOTE(SQLLOGDIR))"\%v& del "$(ESCAPE_SQUOTE(SQLLOGDIR))"\%v"

Değiştirilmiş Hali:

cmd /q /c "For /F "tokens=1 delims=" %v In ('ForFiles /P "M:\YEDEK7\OlaOutput" /m _.txt /d -30 2^>^&1') do if EXIST "M:\YEDEK7\OlaOutput"\%v echo del "M:\YEDEK7\OlaOutput"\%v& del "M:\YEDEK7\OlaOutput"\%v"

Bu işlemlerden sonra artık Output file etkilendirilmiş bir jobımızın kaydetmiş olduğu txt ifadeleri Output File Cleanup jobıyla belirli aralıklarla silinmektedir.

Ola Hallengren scriptlerini çalıştırmadan önce OutputFileDirectory kısmı manuel bir şekilde ayarlanabilir. Script create edilirken yapılmaktadır. Sonradan da değiştirilebilir.

Herhangi bir path belirtilmezse sql server default olan sql server error log dosya uzantısına kaydetmektedir.

Yukarıda resimde görüldüğü gibi scriptimiz çalıştırılırsa bakım joblarının output file kısmı belirlediğimiz şekilde olmaktadır. Yeni bir job oluşturacağımız zaman değerler manuel verilmektedir. Ola hallengren bakım joblarında bu değer aktif olmaktadır.

Ola hallengren jobları dışında normal bir job oluşturursak boş bir şekilde gelmektedir.

Olahallengren scriptleriyle gelen Output File Cleanup jobı temizleme işlemini belirli aralıktan sonra ilgili dizin altında kontrol yapıldıktan sonra temizlenen txt’lerin silindiğini görmüş oluyoruz.

Bu makalede output file konusunu detaylı bir şekilde görmüş olduk.

Başka makalede görüşmek dileğiyle..

Gündüzün iki tarafında ve gecenin (gündüze) yakın saatlerinde namazı kıl. Şüphesiz iyilikler, kötülükleri giderir. Bu, öğüt alanlara bir öğüttür. Hud Suresi, 114. Ayet

Author: Yunus YÜCEL

Bir yanıt yazın

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