SQL Server Management Studio (SSMS) içerisinde yer alan Registered Servers (Kayıtlı Sunucular) bileşeni, sık kullandığınız sunucu bağlantılarını organize etmenizi, gruplandırmanızı ve yönetmenizi sağlayan bir yönetim aracıdır.
Özellikle çok sayıda sunucunun (Development, Test, Production gibi) bulunduğu ortamlarda iş akışını ciddi oranda kolaylaştırır.
Bu makalede farklı sunucular altında bulunan veritabanlarının bulunduğu sunucuları tek bir gurup altına almayı amaçlamaktayız. SSMS arayüzünden ayrı ayrı sunucu ve instancelarımıza bağlanarak aynı komutu çalıştırma sorununun önüne geçip, oluşturacağımız registered server gurup altına eklediğimiz sunucularımıza hemen bağlanmayı hedeflemekteyim.
Şimdi uygulamalı bir şekilde registered server kurulumuna geçelim.
SSMS arayüzünde sol üst kısımda bulunan View sekmesi altında bulunan Registered Servers bölümüne tıklanır.

Gelen ekranda Local Server Group alanına sağ tıklanıp New Server Group diyiyoruz. Bu sayede Sunucularınızı işlevlerine veya lokasyonlarına göre klasörleyerek (Örn: “Müşteri Veritabanları”, “Lojistik Sunucuları”) düzenli tutabilirsiniz.

Gelen ekranda SQL_GURUP adında bir gurup ismi belirliyoruz.

Gurubumuzu oluşturduktan sonra oluşturduğumuz gurup üzerine sağ tıklayarak New Server Registration’a tıklıyoruz.

Gelen ekranda Server Name kısmında hangi sunucu ve instance’a bağlanmak istiyorsak seçim işlemlerini yapıyoruz. Sunucu adı ve instance ismini yazdıktan sonra Save tuşuna basıp çıkıyoruz.

Gelen ekranda S2\TEST sunucu ve instance’ı gördükten sonra S3 ve S4 sunucularımıda oluşturmuş olduğum SQL_GURUP’a sağ tıklayıp New Server Registration deyip ekliyoruz.

S3\TEST ve S4\TEST sunucumu ekliyorum.



Sonuç olarak aynı registered gurup altına S2,S3,S4 sunucularımı SQL_GURUP altına eklemiş oldum.

Şimdi test işlemlerimizi geçelim.
SQL_GURUP’a sağ sağ tıklayıp “New Query” dediğinizde, yazdığınız SQL sorgusu o gruptaki tüm sunucularda aynı anda çalışır. Sonuçlar, hangi satırın hangi sunucudan geldiğini belirten ek bir sütunla birlikte tek bir ekranda birleştirilir.

Gelen ekranda sağ alt kısımda oluşturmuş olduğumuz gurup’a bağlandığımızı görüyoruz.

SQL_GURUP altında bulunan S2\TEST,S3\TEST,S4\TEST sunucu ve instancelarda AdventureWorks2012 veritabanı bulunmakta ve yukarıda açmış olduğumuz query’e ortak AdventureWorks2012 veritabanında olan bir tablonun select ifadesini yazıp çalıştırıyoruz. Sonuç olarak aşağıdaki gibi dönmüş oldu.

Select ifademiz 3 sunucuda aynı tablo olduğu için çalışmış oldu. Select sonucunda dönen sonuç kümesi registered gurup altındaki tüm sunucular da sorgumuz çalışmış oldu. Aşağıdaki resimde de tüm sunucularımızda çalıştığını görmekteyiz.

Registered server şunun için kullanılabilir 3 sunucuda aynı tablo var belirtilen id değeri hepsinde var mı yok mu kontrolü yapılabilir.
Örneğimde sadece S3\TEST altında bulunan tabloya SQL_GURUP altında select çektiğimizde sadece S3\TEST altında olduğu için sonuç dönmüş olacak diğer sunucularda olmadığına dair hata mesajıyla karşılaşacağız.

Sadece S3\TEST sunucusunda olduğu için sonuç dönmüş oldu. Yukarıdaki resimde Server Name kısmında S3\TEST görünüyor sadece Messages kısmında ise S2\TEST,S4\TEST sunucularında bu veritabanının olmadığını belirtiyor.

Ayrıca SQL_GURUP altında tanımlamış olduğum S2\TEST,\S3\TEST,S4\TEST sunucularının üzerine sağ tıklayıp New Query diyerek sorguları tekil olarak çalıştırabiliriz.


Gelen ekranda S2\TEST altındaki bulunan veritabanıyla ilgili bir sorgu çalıştırıyoruz.

Dikkat edersek registered server SSMS arayüzünden tüm sunuculara teker teker bağlanacağımıza bize kolaylık sağlayarak işlemlerimiz yapabiliriz. Makalenin başında ise bunu belirtmiştik.
SQL_GURUP üzerine sağ tıklayıp Object Explorer kısmında SQL_GURUP altındaki tüm sunucular otomatik olarak SSMS arayüzünde karşımıza gelmektedir.
Sunucu adlarını veya IP adreslerini ezberlemek yerine, listeden çift tıklayarak Object Explorer’a veya yeni bir sorgu ekranına hızlıca geçiş yapabilirsiniz.

SQL_GURUP altındaki tüm sunuculara aşağıdaki resimde görüldüğü gibi bağlanmış olduk.

Registered server’ın farklı bir bağlanma şekli ise instance’ın üzerine sağ tıklayarak yapabiliriz. Bu şekilde yapıldığında local server gurubun altında otomatik oluşmaktadır. Biz yukarıdaki örnekte kendimiz bir gurup oluşturduktan sonra sunucularımızı altına eklemiştik.

Daha sonra View sekmesi altında registered servers bölümünde görebiliriz.

Registered Servers panelinde bir de Central Management Servers sekmesi bulunur. Standart kayıtlı sunuculardan farkı şudur:
- Standart: Bilgiler sizin bilgisayarınızdaki SSMS konfigürasyonunda tutulur.
- CMS: Sunucu listesi merkezi bir SQL Server üzerinde tutulur. Böylece tüm DBA ekibi aynı güncel listeyi ortaklaşa kullanabilir.

1. Local Registered Servers (Bireysel Kullanım)
Normalde oluşturduğunuz “Registered Servers” listesi sadece sizin bilgisayarınızdaki SSMS ayarlarında saklanır.
- Başka bir sunucuya veya arkadaşınızın bilgisayarına geçtiğinizde bu listeyi göremezsiniz.
- Eğer bu listeyi taşımak isterseniz, sağ tıklayıp “Export” yapıp bir XML dosyası almanız ve diğer bilgisayarda “Import” etmeniz gerekir.
2. Central Management Servers (Ekipsel/Merkezi Kullanım)
CMS kullandığınızda, sunucu listesini (grupları ve kayıtlı sunucu isimlerini) merkezi bir SQL Server veritabanı içinde (msdb veritabanında) saklarsınız.
- Her yerden erişim: Siz SSMS’i hangi bilgisayardan açarsanız açın, CMS olarak belirlediğiniz ana sunucuya bağlandığınız anda tüm sunucu listeniz otomatik olarak karşınıza gelir.
- Ekip Paylaşımı: Sizin dışınızdaki diğer DBA arkadaşlarınız da aynı CMS sunucusuna bağlandığında, sizin oluşturduğunuz “Production”, “Test” gibi klasörleri ve içindeki sunucuları anında görürler. Herkesin tek tek sunucu eklemesine gerek kalmaz.
- Yetkilendirme: CMS üzerindeki listeyi kimlerin görebileceğini veya düzenleyebileceğini SQL Server izinleri (Role-based) ile yönetebilirsiniz.

Başka bir kullanıcı aynı instance a bağlanınca kolaylıkla oluşturduğunu Registered server yapısını görmektedir.
Küçük bir not: CMS sisteminde sunucu şifrelerini (SQL Authentication) saklayamazsınız; güvenlik nedeniyle sadece Windows Authentication ile çalışan bağlantılara izin verir.
Tüm sunucularımızın üzerinde bir tablo, view veya başka bir ifade oluşturulmak istendiğinde bu yapı ile çok rahat bir şekilde scriptler tüm sunucular üzerinde çalıştırılabilir.
Bu makalede baştan sona registered server kurulumunu ele almış olduk.
Başka bir makalede görüşmek dileğiyle.
Bilmiş olun ki şüphesiz göklerdeki her şey, yerdeki her şey Allah’ındır. O, içinde bulunduğunuz durumu gerçekten bilir. Allah’a döndürülecekleri ve yaptıklarını Allah’ın onlara haber vereceği günü hatırla. Allah, her şeyi hakkıyla bilendir. Nûr-64
