Microsoft, SQL Server Utility ve Utility Explorer özelliklerini yeni SSMS sürümlerinde “deprecated” (kullanımdan kaldırılmış) durumuna getirdi. Eğer bu özelliği mutlaka kullanmanız gerekiyorsa tek bir yol kalıyor. Eski Sürüm SSMS Yüklemek, eğer Utility Explorer sizin için vazgeçilmezse ilgili sayfadan SSMS 16 sürümlerinden birini indirmeniz gerekmektedir.
Modern SSMS sürümlerinde Microsoft, Utility Explorer yerine daha gelişmiş izleme araçlarına (Query Store, Performance Dashboards veya Azure Data Studio gibi) odaklandığı için bu arayüzü varsayılan kurulumdan veya görünümden kaldırdı. Biz Utility Control Point yapısının ne olduğunu veya eğer kullanıyorsanız nasıl kurulduğunu detaylı bir şekilde kurup öğrenmiş olalım.
Utility Control Point SQL Server’ın içinde entegre bir şekilde çalışır ve SQL Server’ı kontrol etmek için kullanılır. CPU kullanım ve disk doluluk oranlarını ve geçmişini takip etmek için iyi bir yöntemdir.
Öncelikle yukarıdan belirtilen sayfadan SSMS’in eski versiyonu indirilir. Daha sonra normal sunucu ve instance adıyla SSMS bağlantısı gerçekleştirilir.

SSMS üzerinde bulunan View sekmesinden Utility Explorer bölümüne tıklanır.

Gelen ekranda Create a Utility Control Point(UCP) bölümüne tıklanır.

Gelen ekranda Do not show this page again. bölümünü seçip Next deyi bir sonraki adıma geçiyoruz.

Gelen ekranda Sql server instance name‘e connect oluyoruz. Utility Control Point Name kısmında bir isim belirliyoruz.

Bağlantımızı ve isim belirlememizi yapıyoruz.

Gelen ekranda domain hesabı belirleyebildiğimiz gibi sql server agent servis hesabını kullanması gerektiğini belirtebiliriz. Bağlanılan domain hesabının Active Directory tarafından bir kullanıcının olması gerekmektedir.

Sql server agent servis hesabının seçtikten sonra Next deyip bir sonraki adıma geçiyoruz.

Başarılı bir şekilde kurulumun gerçekleştiğini görmekteyiz.

Kurulum işlemi gerçekleştirme aşamasında aşağıdaki hata mesajı ile karşılaşılır.

Bu hata, kurulumun oluşturmaya çalıştığı sysutility_mdw veritabanının o anda SINGLE_USER modunda olduğunu ve başka bir işlemin (muhtemelen sizin o anki bağlantınızın veya arkada çalışan bir servisin) bu veritabanını meşgul ettiğini gösterir.
Connect olduğumuz sunucu üzerinde ilgili veritabanını kontrol ettiğimizde veritabanımızın single_user modunda olduğu görülmektedir.

Aşağıdaki komutla veritabanımızı singler user modundan çıkartıyoruz.
USE master;
GO
ALTER DATABASE sysutility_mdw SET MULTI_USER WITH ROLLBACK IMMEDIATE;
GO
Yukarıdaki işlem sonucunda hata mesajı alırız.
Msg 5064, Level 16, State 1, Line 3
Changes to the state or options of database ‘sysutility_mdw’ cannot be made at this time. The database is in single-user mode, and a user is currently connected to it.
Msg 5069, Level 16, State 1, Line 3
ALTER DATABASE statement failed.
Aşağıdaki komut ile bağlantı kullanan session kill edilir.
SELECT session_id, login_name, status, last_request_start_time
FROM sys.dm_exec_sessions
WHERE database_id = DB_ID('sysutility_mdw');

İlgili işlem sonucu veritabanımızı single user modundan çıkarmış bulunduk. Çıkardıktan sonra veritabanı silinir. Çünkü önceki kurulum yapısında veritabanımız yarıda kalmış olabilir eksik dosyalar üzerinde işlem yapmamız bizlere bir fayda sağlamayacağı için kaldırılır.
Not: Veritabanı simple recovery model de oluşmaktadır.

Şimdi tekrardan kurulum ekranın başına geldiğimizde başarılı bir şekilde kurulum tamamlanmış olunur. Finish dedikten sonra işlem sonlandırılır.

İlgili bağlantılar sağlandıktan sonra instance altında veritabanı ile birlikte iki tane job oluşmuş olması gerekmektedir. Verilerin çekilmesi bu jobların çalışmasına bağlıdır. Genellikle 15-20 dk bir veri çekilir.

Not: Oluşturduğu veritabanı default olarak instance üzerinde bulunan data disk ve log disk uzantısında oluşmaktadır. Kısacası rastgele bir disk altında oluşmamaktadır.
Oluşturduğumuz yapını geldiği görülmektedir. İlgili yapının altında Managed Instances sekmesinden birden fazla sunucuda eklesek aşağıdaki ilgili ekran sadece Utility’in kurulu olduğu bölümü göstermektedir.

Daha önce utility control point kurulumu yaptıysanız Managed Instances bölümüne tıklandığında sağ tarafta kurulum yaptığınız instance’ın bilgisini göreceksiniz.

Bu control point’e başka bir instance eklemek için Managed Instance üzerinde aşağıdaki gibi sağ tıklayarak Enroll Instance… diyoruz.

Gelen ekranda herhangi bir değişiklik yapmadan Next diyoruz.

Bağlantı sağlayacağımız instance ve sunucu seçimi yapılmaktadır.

Active dizinde olma şartı olan agent servis hesabı seçilir. Kendinizde herhangi bir kullanıcı oluşturacaksanız domain ortamında bulunan bir kullanıcının seçilmesi gerekmektedir.

Next butonuna basıp kurulum işlemi başarılı bir şekilde tanımlanmış olunur.

Managed Instance’a bölümünde eklemiş olduğumuz iki instance yapısınında geldiğini görmüş olacağız. İkinci instance’ı yeni eklediğimiz için yukarda gördüğünüz gibi Instance CPU, Computer CPU, File Space ve Volume Space ile ilgili durum bilgisi boş geldi. Bir süre sonra yukardaki ekran görüntüsündeki ekranda boşlukta sağ tıklayıp refresh derseniz düzelecektir.
Not: Managed Instances altında yeni server ve instance’lar eklenince yeni bir veritabanı oluşturulmaz. başlangıçta oluşturulan Utility23 yapısının veritabanını kullanmaktadır. Sadece eklenen instance altında bulunan agent bölümünde ilgili joblar oluşmaktadır.

Utility Control Point’in izlediği parametreleri değiştirmek için SSMS üzerinde aşağıdaki gibi View Utility Expolorer diyoruz.

Açılan ekranda Utility Administration ekranına tıklıyoruz ve sağ taraftan Global Policies for Managed Instance’ın altında aşağıdaki ayarlar listeleniyor.

İlgili bölümlerden kendiniz yapınızı oluşturabilirsiniz.

SQL Server Utility içerisinde Data-tier Applications (DAC), yani veritabanı uygulamalarınız için Global Sağlık Politikalarını belirlediğiniz bölümdür. Bu ayarlar, Utility Explorer dashboard’unda sunucularınızın veya uygulamalarınızın “Sağlıklı” (Yeşil tik) veya “Kritik/Aşırı Kullanım” (Kırmızı ünlem) olarak görünmesini sağlar.
1. CPU Utilization (İşlemci Kullanımı):
a-)Overutilized (> 70%): Uygulamanın kullandığı CPU oranı %70’i geçerse, Utility Explorer bu uygulamayı “Aşırı Kaynak Tüketiyor” olarak işaretler ve size uyarı verir.
b-)Underutilized (< 0%): Alt sınır belirlerseniz (örneğin %10), işlemci kullanımı bu değerin altına düştüğünde “Atıl/Boşta” uyarısı alırsınız.
2. File Space Utilization (Dosya Alanı Kullanımı):
a-)Data File / Log File (> 70%): Veritabanı dosyalarınızın (MDF) veya Log dosyalarınızın (LDF) doluluk oranı %70’i geçtiğinde kırmızı alarm verir.
Not: Sizin gibi 15 TB’lık büyük yapılar yöneten biri için %70 bazen çok erken bir uyarı olabilir. Eğer disk alanınız kısıtlıysa bu oranı %85-90 gibi değerlere çekmek “yalancı alarmları” engelleyebilir.
Bir DBA olarak onlarca sunucuyu tek tek kontrol etmek yerine, bu politikaları set ederek Utility Explorer ana ekranına baktığınızda:
- Hangi veritabanının diski dolmak üzere?
- Hangi sunucuda CPU darboğazı var?
- Hangi log dosyası şişmiş?
Bunları tek bir dashboard üzerinden renk kodlarıyla (Yeşil/Sarı/Kırmızı) anlık olarak görebilirsiniz.
Bu değerler “Global”dir, yani tüm uygulamalar için geçerlidir. Eğer belirli bir veritabanı için farklı bir kural koymak isterseniz, daha sonra o veritabanına özel “Application Specific Policy” tanımlayabilirsiniz.
Önceki ekran veritabanı içindeki uygulamalara odaklanırken aşağıdaki ekran instance ve işletim sisteminin kendisine odaklanmaktadır. Kısacası önceki ekran yazılımın sağlığını ölçerken bu ekran makinenin ve sql server’ın sağlığını ölçmektedir.

Aslında burada iki ana kaynağı (CPU ve Disk) iki farklı bakış açısıyla (SQL bazlı ve Makine bazlı) yönetiyorsunuz. Kolon bazlı açıklamalar şöyledir:
1. CPU Utilization Policies (İşlemci Kullanımı) Bu bölüm, sunucunun işlem gücü performansını izler.
- CPU of a managed instance of SQL Server: Sadece sqlservr.exe sürecinin ne kadar CPU tükettiğine bakar.
- Overutilized: SQL Server işlemciyi çok yoruyorsa (örn: %80) alarm verir.
- CPU of a computer: Sunucunun (Windows/OS) toplam CPU kullanımına bakar.
Önemli Fark: SQL %10 kullanıyor olabilir ama arkada çalışan bir yedekleme yazılımı veya antivirüs CPU’yu %90’a çıkarırsa, “Computer” kolonundaki kural sayesinde bunu yakalarsınız.
2. File Space Utilization Policies (Dosya Bazlı Doluluk)
Bu bölüm, SQL Server içindeki veritabanı dosyalarının (MDF/LDF) kendi içlerindeki doluluk oranına bakar.
- Data file: Veritabanı dosyalarının (MDF/NDF) içindeki verinin, dosya boyutuna oranına bakar.
- Log file: Transaction Log (LDF) dosyalarının doluluk oranına bakar.
Eğer bir log dosyası 100 GB ise ve içi 70 GB dolmuşsa (ve siz sınırı %70 koyduysanız) “Log file overutilized” uyarısı alırsınız.
3. Storage Volume Utilization Policies (Disk/Sürücü Bazlı Doluluk)
Bu bölüm, dosyaların ötesinde doğrudan fiziksel veya sanal sürücülere (D:, E:, F: gibi) odaklanır.
Disk space of a storage volume: SQL dosyalarınızın bulunduğu diskin (Volume) genel boş alanına bakar.
Daha detay bilgiye ulaşmak için ilgili instance’ı seçtikten sonra alt tarafta aşağıdaki gibi ekrana bakıyoruz. CPU Utilization kısmından geçmişe dönük cpu kullanım oranını ve hangi saat aralıklarında bu eşik değerini aştığını görebiliyoruz.
Resim gelecek
Storage Utilization kısmından Database’i seçersek hem veritabanının büyüme geçmişine bakabiliriz hemde veritabanı isminin yanındaki boş kutucuğa tıklayarak file doluluk oranını görebiliriz. Volume kısmında ise sunucu üzerinde bulunan disklerin doluluk oranını görebiliriz.

Volume bölümünü seçtikten sonra dosyalarımızın ve veritabanlarımızın genel durumunu ayrıca sağ bölümden ne kadar büyüdüğünü gözlemleyebiliriz. Yeni kurduğum için tam olarak net resimler alamadım.

Policy Details kısmında ise set edilen policyler görülmektedir.

Property details kısmında ise sunucu ve sql server’la ilgili bilgiler görülmektedir.

Tüm instance altında ekleyerek işlemlerimizi rahatlıkla kontrol edebilirsiniz.

Oluşturulan Utility Control Point bölümüne tekrardan girmek için SSMS arayüzünden View sekmesine tıklandığında gelen ekranda Connect to an existing UCP bölümüne tıklanması gerekmektedir. Gelen ekranda Utility control point hangi instance ve sunucu üzerinde kurulmuşsa bağlantı sağlanması gerekmektedir.

Başka bir makalede görüşmek dileğiyle..
“…Sakın Dünya Hayatı Sizi Aldatmasın” Fatır-5
