Policy-Based Management(Veritabanı Dosyalarının AutoGrowth Kontrolü-Data File Facet)

24 Ağu by NURULLAH ÇAKIR

Policy-Based Management(Veritabanı Dosyalarının AutoGrowth Kontrolü-Data File Facet)

Policy-Based Management SQL Server 2008 ile gelen bir özelliktir. Sistemlerimizde istediğimiz kuralları koymamıza, standartlarımızı belirlememize ve kontrollerimizi otomatik olarak yapmamıza olanak sağlar. Örneğin stored procedure’lerimizin isimlerinin rakam ile başlamaması ya da veritabanı recovery modellerinin simple olmaması için kontrol amaçlı olarak policy oluşturabiliriz.

 

Policy Based Management(PBM)’ı kavramak için bazı kavramları anlamanız gerekir.

 

Facet: PBM tarafından yönetilebilen bir özelliktir. Örneğin Data File ve Log File isimlerinde iki facet vardır. Bu facet’ları kullanarak veritabanı dosyalarının auto growth oranlarını kontrol edebiliriz. Auto Growth veritabanındaki performans için çok büyük önem arzeder. Bu makaleyi okumadan önce “Vlf(Virtual Log File) count nedir” isimli makaleyi okumanızı tavsiye ederim. Makalede auto growth’un doğru yapılandırılmasının öneminin nedenini ve yapılması gerekenleri bulabilirsiniz.

 

Tüm facet’ların listesine aşağıdaki gibi SSMS üzerinden erişebilirsiniz. Facet detayı için üzerine çift tıklamalısınız.

 

 

Condition: ilgili facet’ların alt özelliklerinin belirlenen koşulu sağlayıp sağlamadığını kontrol eder. Örneğin Data File ve Log File facet’larının Growth ve GrowthType alt özelliğini kullanarak auto growth büyüme boyutunu ve büyümenin cinsini kontrol edebilirsiniz. Böylelikle percent olarak kalanları tespit edip düzeltebilirsiniz.

 

Ben default olarak veritabanında data dosyalarının auto growth’unu 512 MB, log dosyalarının auto growth’unu 256 MB olarak ayarlıyorum. Data File için Auto Growth ayarı bu şekilde olmayan veritabanlarını tespit eden bir policy oluşturalım. Log Dosyası için aynı şekilde oluşturabilirsiniz.

 

 

Aşağıdaki gibi Management > Policy Management > Policies sekmelerinden New Policy diyoruz.

 

 

Karşımıza çıkan ekranda Policy’e bir isim veriyoruz ve Check Condition kısmından bir condition oluşturmamız gerekiyor.

 

New Condition’a tıklıyoruz.

 

 

Karşımıza çıkan ekranda Name kısmından condition’a bir isim veriyoruz.

 

Facet kısmından Data File dosyalarının Auto Growth kontrolünü yapacağımız için Data File facet’ını seçiyoruz. (Log Dosyaları için Log File Facet’ını seçmelisiniz.)

Expression kısmında … ‘ya tıklayarak Data File facet’ının alt özellikleri olan @Growth ‘u ve @GrowthType’ı seçiyoruz.

 

Operator kısmından =’i seçiyoruz. Çünkü Growth’u 512 MB olmayanları tespit edeceğiz.

 

Value kısmına Growth için 512 MB değerine denk gelen 524288 değerini yazıyoruz. GrowthType kısmına da KB yazıyoruz.

 

 

Evaluation Mode kısmından On Schedule’ı seçerek policy hangi aralıklarla kontrol’ü yapacağını belirliyoruz ve daha sonra Enable kutucuğuna tıklıyoruz.

 

On Demand’ı seçersek, sadece policy’i çalıştırdığımızda kontrolleri yapar.

 

Server restriction kısmında server bazında bir koşulunuz varsa server bazında bir condition oluşturarak koşulunuzun kontrolünü yapabilirsiniz.

 

 

 

Belirli aralıklarla otomatik kontrol etmesini istiyorsak Schedule kısmından new diyoruz ve policy’nin kontrol’ü yapacağı sıklığı belirliyoruz. Biz aşağıda her gün 00:00:000’da bir kere çalışacak şekilde set ettik.

 

 

Policy’mizi bu şekilde oluşturduk. Manual olarak çalıştırmak için aşağıdaki gibi Evaluate diyoruz.

 

 

Ben kendi lokal’imde evaluate ettiğimde aşağıdaki gibi sistem veritabanlarının bu kurala uymadığını gördüm. Sistem veritabanları çok fazla büyümeyeceği için ayarlarını değiştirmeyebilirsiniz ama yinede değiştirmenin daha iyi olacağını düşünüyorum.

 

 

Instance üzerinde refresh yaptığınızda Instance’ın yanında aşağıdaki gibi mektuba benzeyen bir kutucuğun üstünde kırmızı renki x işareti çıkıyor. Bunun sebebi instance üzerinde tanımlı olan ve hatalı biten bir policy’nin var olduğunun sql  server’ın bize bildirmek istemesi. Bu işareti gördüğünüzde tanımlı policy’lere bakıp gerekliliklerini yerine getirmeniz gerekir.

 

Örneğimizle ilişkilendirecek olursak veritabanlarındaki data file’ların hepsinin auto growth ayarlarını yapıp policy’i yukarda anlattığım gibi tekrar evaluate ettiğimizde bu işaret kaybolacaktır.

Policy Based Management ile SQL Server üzerinde yapabileceğiniz bir çok kontrol vardır. Ve profesyonel bir veritabanı yöneticisi bence SQL Server’ın bize sunduğu bu özelliği bütün detaylarıyla kullanmalı. Policy Based Management ile  yapabileceğiniz diğer kontrolleri sitemizdeki menüden MSSQL’in altındaki POLICY-BASED MANAGEMENT alt menüsünden erişebileceğiniz makalelerde bulabilirsiniz.

Loading

Bir yanıt yazın

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