SQL Server Monitoring Nedir, Faydaları Nelerdir

Merhaba arkadaşlar,

Bugün sizlere SQL Server’da monitoring nedir, ne gibi faydaları vardır ondan bahsedeceğim.

DBA’lar  SQL Server Monitoring ile  anlık ve geçmişte yapmış olduğu işlemleri izleyebilir. Montitoring,verilerinize kuşbakışı görünümü sağlar  Hangi sorgularda performans sorunları var, nerelerde deadlock oluşmuş, hangi sorgu yavaş çalışıyor, işlemci ram gibi kaynakların kullanım oranları, diskin doluluk oranı, kullanımı(disk usage), veri tabanlarının büyüme oranlarına tüm bu bilgileri monitoring sayesinde gözlemleyebiliriz. Bu gözlemler sonucunda anlık problemlere daha hızlı çözüm üretebilir veya geleceğe yönelik donanımsal ihtiyaçları hesaplayabiliriz. Kullanıcılar, monitoring tarafından sağlanan veri toplama yeteneklerini kullanarak, izlemeleri gereken belirli bilgileri ayarlayabilir.

Monitoring’in faydalarını şu şekilde sıralayabiliriz;

SQL Server performans araçlarını aktif olarak izlemediğiniz sürece, performansı artırabileceğiniz alanlar olup olmadığını bilemezsiniz. Bu, aslında bir darboğaz oluşturan ve dolayısıyla etkinliğini sınırlayan bariz sorunlar olduğunda sunucunuzun zaten en iyi durumda olduğuna inanmanıza neden olabilir.

Örneğin, belirli bir anda ne kadar cpu kaynağını kontrol ederek, sunucunuzun kullanıcılarınızın ihtiyaç duyduğu etkinliği, yerine getirmek için yeterli alana sahip olup olmadığını veya donanım kaynaklarını maksimuma çıkarmaya ve yavaş davranmaya yakın olup olmadığını görebilirsiniz.Yerleşik bellek doymuşsa benzer bir sorun oluşur. Hangi işlemlerin sistem kaynaklarını tükettiğini bilmiyorsanız, onu yönetemez ve uygun bir geçici çözüm bulamazsınız. Doğru izleme araçlarıyla, optimize etmek için harekete geçme konusunda bilgilendirileceksiniz ve yetkilendirileceksiniz.

SQL sunucu izlemenin dakika başına faydaları anında performans kazanımları sağlayabilirken, donanımınızın iş yükünüzü nasıl idare ettiğine dair daha geniş bir bilgiye ihtiyaç duyuyorsanız toplamanın faydaları da vardır. Örneğin, bazı problemler yalnızca eğilimleri daha uzun süreler boyunca analiz ederken tanımlanabilir. Bu, özellikle sunucunuzun karşı karşıya olduğu artan talepleri eşleştirerek ve bu sorunların üzerinizde pusuya yatmasına izin vermek, yerine gelecekte bunlara yanıt vermeye hazırlanarak gerekebilecek herhangi bir yükseltmeyi haritalamak istiyorsanız kullanışlıdır.

Genel olarak, hemen hemen her DBA, veritabanını planlarken iş yükünün ne kadar kaynak kullanması gerektiğini belirler ve kaynakları buna göre tespit eder. Ardından sunucunun stabil çalıştığını gösteren bir temel değer belirler, bu değeri gelecekteki sorunlarla karşılaştırır ve çözümler üretir. Ayrıca gerektiğinde donanım yükseltmeleri yapmakta ve sunucu sürekliliğinin önemli olduğu donanımların takibini yapmaktadır.

Veri platformunuzun sorunsuz çalışmasını sağlamak için  sürekli performans izleme, arıza süresi riskini azaltır.

SQL Server Profiler ile yavaş çalışan sorgular belirlenir. Sistem performansını daha iyi izler.

SQL Server Monitoring Yaparken Dikkat Edilmesi Gereken Hususlar

  • Sunucuda Backup alınıp alınmadığına dair düzenli rapor mailinin gelmesi

Oluşturacağımız joblar sayesinde backup alınıp alınmadığını düzenli bir şekilde takip edebiliriz. Alınmadığı zaman failed mesajlarıyla kontrolünü sağlayabiliriz.

  • Cpu kullanım durumları

Sunucuda yüksek CPU kullanımına denk geldiğimizde bakacağımız ilk yer Task Manager aracıdır. Burada SQL Server’in yüksek CPU kullandığından emin olmamız gerekiyor. Task Manager içerisinde sqlservr.exe programının karşısında CPU kullanımı gösterilmektedir. Ardından SQL Server tarafına geçip tam olarak SQL Server’in hangi prosesin bu kaynağı kullandığını takip ederiz.

  • Disk Kullanımı I/O

Hem okuma hem de yazma durumlarında I/O sistemleri kritik önem taşımaktadır. Bu trafikte en önemli sorun oluşacak darboğazlardır. Sistem üzerinde taleplerimizi gerçekleştirmeden önce execution plan’a bakmak ve ona göre I/O kaynak tüketimini tahim edip ardından takip etmekte fayda var.

  • SQL Server Error Log Takibi

SQL Server’da sistemin nasıl çalıştığını kontrol etmek için bakacağımız belki de ilk yer SQL Server Error Log’larıdır. SQL Server ve Agent Error Log’ları sayesinde sistemde herhangi bir ciddi problem olup olmadığını kontrol etmemiz mümkündür.

  • Connection Durumlarının Kontrol Edilmesi

Açılan ama kapanmayan connectionalar SQL Server’da darboğaz oluşturabilir. Connectionların takibi bu sebepten dolayı önemlidir.

  • Veritabanlarının Suspect Moda Düşüp Düşmemesi

SQL Server sunucusu, dosyalar zarar gördüğünde ve veritabanı hasarlı dosyayı onaramadığından suspect moda geçer. Bu durum yaşandığında veritabanına bağlanmak, veritabanından veri okumak ve yazmak gibi işlemleri gerçekleştiremeyiz. Fakat mevcut veritabanımızı tüm hatalara rağmen kurtarmamız gerekebilir. Eğer ki veritabanımızda çok fazla bir hasar söz konusu değilse bu veri kaybını en az ile kurtarabilmemizde mümkün.

  • Alertlerin takip edilmesi

Sql server sunucusunda, karşılaşabileceğimiz durumlar önceden sunucu tarafından oluşturulur ve loglarına girilir. Sql Server Agent yaptığımız işlem loglarını kontrol eder ve daha önce tanımlanmış olan olaya eşleşen bir durum gördüğünde tanımlanmış hata kodu ve ismiyle bildirimde bulunur. İlgili kısma mail adresimizi girersek bizlere hangi olayla karşılaştığına dair mail üzerinden bilgilendirme yapar. 

  • Disk boyutunun takip edilmesi

SQL Server ‘ın kurulu olduğu disk boyutunun belli aralıklarla kontrol edilmesi gerekmektedir. Daha kolay yönetmek ve takibini yapabilmek için en az birkaç diske ihtiyaç vardır. Data ve Log disklerinin ayrı tutulması diskin yönetilmesi açısından çok önemlidir. Log dosyaları öngörülemez biçimde büyüyüp diski doldurabileceğinden bunun data dosyalarını etkilemeyeceğinden emin olmamız gerekmektedir. SQL Server’ın kurulumu için ayrılan diske 10 GB yeterlidir. Backup diski için ise kaç günlük backup dosyalarımızı saklayacağımıza göre bir boyut belirleriz. Server’ ın diskte anlık olarak ne kadar yer kapladığının takibinin düzenli olarak yapılması ve kalan alanın daha önceden belirlenen yüzdelik değerlerin altına düşmesinin önüne geçilmesi gerekmektedir.

  •  Index bakımlarının gerçekleştirilmesi

Index, veri tabloları üzerinde ki verilere daha hızlı ulaşabilmemize olanak sağlayan yapılardır. Fakat index tanımladığımız tablolara kayıtlar ekledikçe index fragmantasyonlarında bozulmalar gerçekleşebilir. Bu bozulmaları düzeltmek için Rebuild ve Reorganize olarak adlandırılan çözümleri uygulayabiliriz. Bu bakımları düzenli bir şekilde yapmak sürecin sağlıklı bir şekilde ilerlemesini sağlayacaktır.

  •  Kullanıcı yönetimi

Sql Sunucusuna veya Server’a giriş için kullanıcılara yetki vermemiz gerekmektedir. Her kullanıcı sahip olduğu yetkiler dahilinde işlem yapabilmektedir. Hangi kullanıcının hangi becerilere sahip olduğunu iyi bilmemiz ve ilgili becerilerine yönelik yetkiler verip ilgisi dışında ki kısımlara yetkilendirme yapmamamız gerekmektedir.

  • Bildirimler için Email Kullanımı

Sql Server’ da tanımladığımız joblarda veya alertlerde gerçekleşen durumların takibini yapabilmemiz için Email kullanımı çok önemlidir. Configuere Database Mail kısmından ilgili mail adresimizi tanımlayarak ve daha sonrasında job ve alertlerde tanımladığımız mail adresine mail ile bilgilendirme seçeneğini aktif ettiğimizde Server’ın otomatik olarak bizleri bilgilendirmesini sağlayabiliriz.

Referanslar

https://docs.microsoft.com/en-us/sql/ssms/agent/alerts?view=sql-server-ver16

https://slideplayer.biz.tr/slide/2607746/

Umarım sizlere faydalı olmuştur 🙂

Leave a Reply

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