Policy Based Management-Table Facet

Policy-Based Management SQL Server 2008 ile gelen bir özelliktir. Bu özellik hem Enterprise hem de Standard SQL Server Sürümlerinde kullanılabilir.  Policy Based Management (PBM), SQL Server tarafından sunulan bir yönetim çerçevesidir. Sunucu veya veritabanı yapılandırmalarını kontrol etmek için kullanılır. Bu özellik, belirli politikalar belirleyerek SQL Server ortamını izlemeyi ve yönetmeyi sağlar. PBM ile veritabanı yöneticileri, sistemdeki çeşitli bileşenlerin belirli kurallar ve koşullara uygun olup olmadığını doğrulayabilir ve gerekli durumlarda bu kuralların ihlalini önlemek için tedbirler alabilirler.

Policy Based Management Instance altında bulunan Management sekmesi altında bulunmaktadır.

Policy Based Management altında bulunan kavramların ne olduğuna değinelim.
Facet: SQL Server’ın farklı yapı taşlarını temsil eder ve her bir facet, belirli bir sunucu veya veritabanı özelliğini yönetmek için kullanılır. SQL Server’da 74’ten fazla model vardır ve her modelin bir veya daha fazla özelliği vardır. Aşağıdaki resimde listelenen facet’ler, SQL Server’da yönetilebilecek alanları göstermektedir.


Bu facet’ler, sistemdeki yapılandırmaları izlemek, belirli politikalar tanımlamak ve sunucuyu bu politikalara göre yönetmek amacıyla kullanılır. İlgili Facet üzerine çift tıklayarak ne gibi özellikleri olduğunu gözlemleyebiliriz. 

Genellikle kullanılan  facet kavramların ne olduğuna değinelim.
1. Application Role: Uygulama rollerini yönetmek ve güvenlik yapılandırmalarını kontrol etmek için kullanılır.
2. Asymmetric Key: Asimetrik anahtarları yönetmek için kullanılır. Bu anahtarlar, şifreleme ve dijital imza gibi güvenlik operasyonları için kullanılır.
3.  Audit : Sunucudaki denetim günlüklerinin ayarlanması ve izlenmesi için kullanılır. SQL Server Audit, güvenlik açısından önemli olayları izler.
4.  Availability Database : AlwaysOn kullanılabilirlik gruplarındaki veritabanları için yönetim işlemlerini yapmanızı sağlar.
5.  Availability Group : AlwaysOn gruplarını yönetmek ve yapılandırmak için kullanılır.
6.  Availability Group State : AlwaysOn gruplarının durumu hakkında bilgi verir.
7.  Availability Replica : Availability Group replikalarını yönetmek için kullanılır. Bu replikalar, bir veya daha fazla veri merkezi arasında veri yedekliği sağlamak için kullanılır.
8.  Backup Device : Yedekleme cihazlarını yönetir. Yedekleme işlemleri için kullanılan fiziksel veya mantıksal cihazlardır.
9.  Data File : Veritabanı dosyalarının yönetimi için kullanılır. Veritabanının fiziksel veri dosyaları burada kontrol edilir.
10.  Database : SQL Server’daki veritabanlarını genel olarak yönetir. Veritabanı ayarları ve yapılandırmaları bu facet altında yapılır.
11  Database Audit Specification : Veritabanı denetim spesifikasyonlarını yönetir. Hangi olayların denetleneceğini belirler.
12.  Database Maintenance : Veritabanı bakım işlemleri için kullanılır. Bakım planları, yedekleme ve indeks yeniden oluşturma gibi görevleri içerir.
13.  Database Options : Veritabanının seçeneklerini ve ayarlarını yönetir. Örneğin, otomatik büyüme ve kurtarma modeli gibi seçenekler.
14.  Database Performance : Veritabanının performansıyla ilgili ayarları ve yapılandırmaları kontrol eder.
15.  Database Replica State : AlwaysOn replikalarının durumlarını ve sağlık bilgilerini yönetir ve görüntüler.
16.  Database Role : SQL Server veritabanı içindeki rollerin yönetimi için kullanılır. Rollerin güvenlik ve yetkilendirme ayarları bu facet’ten yapılır.
17.  Database Security : Veritabanı güvenliğiyle ilgili ayarları kontrol eder. Kullanıcı izinleri ve güvenlik denetimleri burada yapılır.
18.  Default : Varsayılan ayarları ve değerleri temsil eden facet’tir.
19.  Endpoint : SQL Server’daki bağlantı uç noktalarını yönetir. Endpoints, veritabanı ile istemciler veya diğer sunucular arasındaki iletişimi yönetir.
20.  Filegroup : Veritabanı dosyalarının gruplar halinde yönetimi için kullanılır. Büyük veritabanlarında performans ve yönetim açısından dosyalar gruplandırılabilir.
21.  Index : Veritabanı indekslerini yönetir. İndeksler, veritabanı sorgularının performansını iyileştirmek için kullanılır.
22.  Linked Server : Bağlantılı sunucuları yönetir. SQL Server’dan diğer veritabanı sunucularına bağlanmayı sağlar.
23.  Log File : Veritabanı log dosyalarının yönetimi için kullanılır. Transaction log dosyalarının büyüklüğünü ve performansını kontrol eder.
24.  Login : Sunucu düzeyinde giriş bilgilerini yönetir. Bu facet ile kullanıcılar SQL Server’a giriş yapabilir.
25.   Login Options  : SQL Server’a giriş yapan kullanıcılar için seçenekleri yönetir. Kullanıcıların oturum açma ayarları buradan kontrol edilebilir.
26.   Partition Function  : Veritabanı bölümleri için kullanılan bölme fonksiyonlarını yönetir. Bu fonksiyonlar, verilerin nasıl bölümleneceğini belirler.
27.   Partition Scheme  : Veritabanı bölümleri için şemaları yönetir. Bölümlenmiş tabloların ve indekslerin fiziksel depolanmasını tanımlar.
28.   Plan Guide  : SQL Server’ın sorgu yürütme planlarını yönetmek için kullanılır. Sorguların performansını optimize etmek amacıyla kullanılır.
29.   Server  : SQL Server’ın genel sunucu ayarlarını ve yapılandırmalarını yönetir.
30.   Server Audit  : Sunucu düzeyindeki denetimleri yönetir. SQL Server denetim kayıtlarını oluşturmak ve izlemek için kullanılır.
31.   Server Audit Specification  : Sunucu denetimi için spesifikasyonları yönetir. Hangi sunucu olaylarının denetleneceğini belirler.

32.   Server Configuration  : SQL Server sunucusunun genel yapılandırma ayarlarını yönetir.
33.   Server Performance  : SQL Server sunucu performansını izlemek ve yönetmek için kullanılır.
34.   Server Role  : Sunucu düzeyindeki güvenlik rollerini yönetir. Sunucudaki kullanıcıların yetkilendirme seviyeleri bu facet üzerinden düzenlenir.

35.   Server Settings  : SQL Server’ın genel ayarlarını ve seçeneklerini yönetir. Sunucu yapılandırmalarının genel kontrolü buradan sağlanır.

32.   Statistic  : İstatistikleri yönetir. SQL Server’daki sorgu performansını iyileştirmek için veritabanı istatistiklerini kullanır.

37.   Table  : Veritabanındaki tabloları yönetir. Tablolar, verilerin saklandığı temel yapılar olarak işlev görür.

Condition:

Yukarıda tanımlanan Facet’ların alt koşullarının sağlanıp sağlanmadığını kontrol etmektedir. Yapacağımız örneklerde ilgili Facet’ı seçtikten sonra Condition bölümü karşımıza çıkmaktadır.

İlgili Facet seçildikten sonra Facet özelliğiyle uyumlu koşullar önümüze gelmektedir.

Yukarıdaki açıklamalardan sonra örnekler üzerinde işlemlerimizi anlamaya çalışalım. Aşağıdaki örnekte sadece Table Facet belirleyip  bir örnek üzerinden açıklamış olacağız.

Herhangi bir veritabanı altında bulunan tabloların Heap bir yapıda olup olmadığıyla ilgili kontrol çalışması yapmaya çalışacağım. Policy Management tanımlayarak rahat bir şekilde veritabanı altında Heap olan tablolara ulaşabiliriz.

İşlemlerimize başlayalım. İnstance altında bulunan Management > Policy Management > Policies sekmelerinden New Policy diyoruz.

Gelen ekranda oluşturacağımız Policy’e bir isim vermek gerekiyor. Daha sonra Check Condition kısmında bir Condition oluşturmamız gerekiyor. İlgili bölümde New Condition’a tıklıyoruz.

Gelen ekranda Condition’a bir isim vermek gerekiyor. Facet kısmında Table Facet’ı seçiyorum.

Expression kısmında bulunan …’ya tıklayarak Table facet’ın içerisinde bulunan Field’ları seçebiliriz. 

Field ekranında dikkat edersek Table altında tüm kontrol işlemlerimizi yapabiliriz. Tablomuzun Heap yapıda olup olmadığını görmek için HasCluesteredIndexs  True yani tablomuz clustered indexs olmazsa hata mesajı vermiş olacaktır.

Yukarıdaki ekranda işlemlerimizi tamamladıktan sonra ekrandan OK deyip çıkıyoruz.

Evaluation Mode kısmından On Schedule’ı seçerek policy’in hangi zaman diliminde  çalışacağını belirliyoruz. On Demand’ı seçersek,  Manuel bir şekilde policy’i çalıştırmak gerekir.

On Schedule seçimini yapıp yeni bir Schedule oluşturuyoruz. Ya da Pick kısmında önceden oluşturulmuş bir Schedule’ı seçebiliriz.

Pick kısmına tıkladığımızda önceki oluşturulmuş olan zamanları görebiliriz.

Server restriction kısmında server bazında bir koşulunuz varsa server bazında bir condition oluşturarak koşulunuzun kontrolünü yapabilirsiniz.  Bunun için Server restriction  kısmında  yeni bir condition oluşturabiliriz.

Yukarıdaki tüm işlemleri tamamladıktan sonra  OK butonuna basıp işlemleri sonlandırıyorum.

Policies’i oluşturduktan sonra Sağ tıklayıp manuel bir şekilde çalıştırmak için Evaluate kısmına tıklanır.

Gelen ekranda hangi veritabanları arasında Hash tablo varsa görebiliriz. Tüm veritabanlarında bu kontrol yapılmaktadır. Bu yapı yerine hash tabloları bulan T-SQL kodu kullanılması daha mantıklıdır.

Hata veren kısmın yanındaki kutucuğa tıklayıp Apply butonuna  basarsak Hash yapıda olan tablomuzu Clustered indexs olarak oluşturuyor.

Apply deyip gelen ekranda Yes dedikten sonra yeni değerimiz set edilmiş olacaktır. Aşağıdaki checkboxs’ı işaretlediğimiz zaman ise tüm veritabanlarımız üzerinde belirlemiş olduğumuz koşulun set edildiğini görebiliriz.

Policy’den hata aldığımız için instance’ın yanında mektuba benzeyen bir kutucuğun üstünde kırmızı renkli 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.

Şimdi Policy’de hata veren veritabanı isim ve uzunluğu düzelttikten sonra x işaretin kaybolduğunu gözlemleyeceğiz.

Kısacası bu makalede Table  facet işlemini ele almış olduk. Bu yapı ile yukarıdaki örneğimiz dışında tablo bazında birden fazla işlem için kontrol işlemi yaparız. Bir sonraki Policy Based Managemet makalesinde görüşmek dileğiyle.

“Zira gökleri ve yeri hak ile yarattı. Sizi şekillendirdi ve şekillerinizi de güzel yaptı. Dönüş ancak O’nadır.” Teğabun-3

Author: Yunus YÜCEL

Bir yanıt yazın

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