MSSQL Server Configuration Manager

Bu makalede Sql Server Configuration Manager’ın ne olduğunu hangi bölümde ne gibi ayar ve konfigürasyonun yapıldığını ele almış olacağım. Tamamen teori bilgilerden oluşan bu yazı ile Sql Server Configuration Manager’ın tam olarak ne olduğunu anlamış olacağız.

Sql Server Configuration Manager sql serverla ilgili tüm ayarlamaların yapıldığı bir yönetim arayüzü olarak karşımıza çıkmaktadır. Bu yönetim ekranı ile kullanılan ağ protokollerini, sql server servisleriyle ilgili tüm yapılandırılmaların yapıldığını bir ekran. Sql Server Configuration Manager işletim sistemine kurduğumuz sql serverla birlikte kurulmaktadır.

Sql Server Configuration Manager ekranına girişte hata  alıp bağlanamıyorsanız. Sayfamda paylaştığım SQL SERVER CONFIGURATION MANAGER LOGIN ERROR  makalesinin okunması gerekmektedir.

Windows arama kısmına Sql Server Configuration Manager yazarak kurmuş olduğumuz Sql Server sürümünü referans alarak girmemiz gerekmektedir. Windows’umuzda birden fazla sql server sürümü olabilir. Bunun için konfigürasyon yapmak istediğimiz Sql Server Configuration Manager’ı doğru tespit edip girilmesi gerekmektedir.

Birden fazla sql server’ımız varsa aşağıdaki komut ile sql server versionunu öğrenip doğru Sql Server Configuration Manager ekranına girmemiz gerekiyor.

select @@VERSION

Gelen ekranda hangi kavramın ne olduğunu ne işe yaradığını ele alalım.

Yukarıdaki resimde SQL Server Services bölümünde kurulu olan instanceları sağ tarafta görülmektedir. Dikkat edersek TEST23 adında Named instance olduğu görülmektedir. Şimdi bu bölümde bulunan servislerin ne iş yaptığını ele alalım.

SQL Server Browser: Bir sunucu üzerinde kaç tane sql server kurulmuşsa her sql server versiyonunda sadece bir tane browser servisi vardır. Dikkat ederseniz sql server diyiyorum instances demiyorum. Client’lar sql server’a bağlanırken browser servisini kullanır. Browser servisi dışardan gelecek connection’lar için ilgili sql server instance portonu öğretir veya kullanıcı hangi Named pipe’ı kullandığını okur. TCP/IP veya DNS kullanıyorsak Named pipe enable edilmesine gerek yoktur.

Ayrıca browser servisi default instancelar dışında named instancelar için bir yönlendirme görevi görür ve gelen bağlantıya otomatikmen sql server portunu öğretir ve bağlantı başarılı bir şekilde yapılır. Detaylı bilgi için ilgili makaleleri okunmanız tavsiye ederim. 1. Makale ve 2. Makale

SQL Server Agent: Kurmuş olduğumuz her instance’ın kendine bağlı bir sql agent servisi vardır. Joblarımızı, alertleri vb.. gibi özellikleri kullanmamızı sağlayan bir servis olarak karşımıza çıkmaktadır. Sistem üzerinde otomatik ve periyodik olarak çalışan işlemlerimizi takip ederiz. Sağ tıklayıp properties ekranından gerekli konfigürasyonlar yapılabilir.

SQL Server: Sadece SQL Server ile başlayanlar Sql Server Database Engine servisi olduğunu göstermektedir. Her SQL Server ifadesinden sonra parantez içerisinde instance adı yazmaktadır. Dikkat ederseniz bende TEST23 yazmaktadır. Çünkü instance adım TEST23. Default instance kullanırsak MSSQLSERVER olarak görülmektedir. Her sql server’da sadece bir tane default instance bulunmaktadır.

Yukarıdaki  default servislerin haricinde sql server kurulurken  kullanıcının isteklerine göre aşağıdaki servislerde kurulabilir.

SQL Server Reporting Services: Sql serverda rapor oluşturmak için kullanılan bir servistir.

SQL Server Integration Services: Genellikle ETL işlemlerinde kullanırken kullanılmaktadır. Bir ortamdan başka bir ortam veri aktarımı ve dönüşüm işlemleri için kullanılmaktadır.

Daha fazla servis eklenebilir. Şimdi Sql Server Database Engine servisimize girip kısımların ne olduğuna hafif değinelim.

SQL Server(TEST23) servisine sağ tıklayıp properties ekranına girdiğimizde aşağıdaki bölüm karşımıza gelmektedir.

Sql server sunucumuzu herhangi bir High Availability veya Cluster mimarisinde kullanacaksak This account bölümünde Active Directory tarafında oluşturulmuş olan bir kullanıcının set edilmesi gerekmektedir. Bu hesabın sadece sql server üzerinde yetkili olması güvenliği açısından önemlidir. Browse seçeneğiyle Active Directory sunucusuna bağlanıp kullanıcı seçilebilir. Sql server kurulum makalelerimde detaylı bir şekilde bu işlemleri ele almış oldum.

AlwaysOn High Availability kısmında ise sunucu üzerinde CLSSSS isminde cluster yapımızın olduğunu görmekteyiz. Alt kısımda bulunan Enable AlwaysOn Availability Groups kısmında sql server üzerinde AlwaysOn yapımızı aktif edebiliriz.

Eğer instance üzerindeki veritabanlarında filestream kullanacaksanız FILESTREAM sekmesine gelerek file stream’i aşağıdaki gibi Enable FILESTREAM for Transact-SQL access diyerek aktifleştirmeniz gerekiyor.

Enable FILESTREAM for file I/O access’i seçerseniz dosyalara windows üzerinden de erişilebilmesine olanak vermiş olursunuz. Güvenlik anlamında bunu yapmanızı tavsiye etmem.

Allow remote clients access to FILESTREAM  data’yı da seçerseniz uzak bilgisayarlardan da FILESTREAM verilerine erişimi sağlamanın yolunu açmış olursunuz. Güvenlik açısından önerilmemektedir.

Sadece aşağıdaki Enable FILESTREAM for Transact-SQL access i seçeneğini seçerek FILESTREAM verilerine sadece TSQL ile veritabanı üzerinden erişilebilmesini garanti altına almış oluyoruz.

Service sekmesinden, sunucu açıldığında otomatik olarak sql server servis’in başlaması için otomatik olarak ayarlı olması gerekir. Default olarak otomatiktir. Eğer sizin servisiniz bu şekilde değilse düzeltmelisiniz.

Advanced bölümünde Dump Directory ve Error reporting kısmını kendi ihtiyacınıza göre değiştirebilirsiniz. Sql server servisinde herhangi bir hata olduğunda dumplar saklanmaktadır

Startup Parameters kısmında ise sql server için bazı özel ayarları tanımlayabilirsiniz. Sql Server Startup Parameters ile sql server servisinin  başlangıcında sunucu ve instance bazlı bir yapılandırma seçeneğidir. Bir sıkıntı anında bu parametreleri kullanarak performans ve güvenlik anlamında iyi sonuçlar elde ederiz.

İlgili makaleyi Sql Server Trace Flag makalesinden ulaşabilirsiniz.

Sql server database engine’daki bazı parametreleri gördükten sonra tekrar Sql Server Configuration Manager ekranına geliyoruz. Gelen ekranda SQL Server Network Configuration bölümünde ilgili instance’daki protokole girilir. Elimizde birden fazla instance varsa her instance için SQL Server Network Configuration bölümünde Protocols for instance_ismi yazmaktadır dikkat etmek gerekmektedir. Doğru instance protokolüne girip doğru ayarların yapılması gerekmektedir.

Yukarıda TEST23 instance’ı altında bulunan tüm protokollerin ne işe yaradığını değinelim.

Shared Memory: Sql server’ın kurulu olduğu sunucu üzerinde bağlantı sağladığımız protokoldür. Kendi üzerinde sql server’a bağlanacağım için client’ta bu makine serverda. Bu bağlanma şekilleri nokta(.),localhost,local veya sunucu_adımız ile bağlantı sağlayabiliriz. Bu bağlanma şekli aslında Windows authentication yapısıdır. Shared memory üzerine sağ tıklayıp Enable edilebilir.

Not: Bir makine ister network’a bağlı olsun veya olmasın onun yerel bir ip’si vardır. Bu ip ile network protokollerini kullanarak bağlanabiliriz. Bu ip yapısı 127.0.0.1’dir.

Named Pipes: Linux ortamlarında kullanılan bir protokoldür. Named Pipes protokolü, TCP/IP, Shared mevcut olmadığında ya da TCP/IP altındaki server’ları isimlendirmeye izin veren DNS olmadığı durumlarda çok kullanışlı olabilir. Onun dışında kullanımı azalmaktadır. Named Pipes üzerine sağ tıklayıp Enable edilebilir.

SQL Server Browser, istemcilerin sunucuya nasıl bağlanacağını belirlemelerine yardımcı olur.
Named Pipes, yerel ağda SQL Server’a bağlantı sağlamak için kullanılan bir iletişim protokolüdür.
Eğer etkin değilse, istemciler TCP/IP veya Shared Memory kullanarak bağlanabilir. Birden fazla SQL Server instance’ı varsa, istemciler Named Pipes kullanarak doğru instance’a bağlanabilir.

Aşağıdaki komut, Named Pipes üzerinden SQL Server’a bağlanmayı dener. Eğer hata alırsanız Named Pipes etkin değil veya güvenlik duvarı engelliyor olabilir.

sqlcmd -S np:\\.\pipe\MSSQL$TEST23\sql\query -Q "SELECT @@SERVERNAME"

TCP/IP: SQL Server’da en yaygın kullanılan ağ protokolü TCP/IP protokolüdür. Bu protokol, farklı donanım ve işletim sistemi özelliklerine sahip bilgisayarları birbirine bağlar ve gelişmiş güvenlik korumasıyla ağ trafiği yönlendirme standartlarını içerdiğinden, bunların birbirleriyle iletişim kurmasını sağlar. Sql server’da TCP\IP default olarak 1433 portunu dinler. SQL Server Bowser Servisi, istemcinin bağlanmaya çalıştığında kullanılan TCP bağlantı noktasını tanımlamasına yardımcı olur. Güvenlik duvarını söz konusu TCP bağlantı noktasındaki SQL Server ile iletişime izin verecek şekilde yapılandırmak gerekir.

TCP\IP üzerine sağ tıklayıp Properties ekranın da gerekli konfigürasyonları yapabiliriz.

TCP\IP bölümünde tüm ip bölümleri için TCP PORT’un yazılması gerekmektedir. Ya da en alt kısımda tüm iplerin kullanacağı IPAll kısmında portu set edebiliriz. TCP Dynamic Ports kısmının boş olması gerekmektedir. Çünkü TCP Dynamic Ports kısmının  0 olması sql servisi restart edilirse otomatik dinamik portumuz rastgele dinamik  bir ip alacaktır..

Port ayarlamasını yaptıktan sonra veya  bu 3 protokol üzerinde disable enable yaptığımız durumlarda tüm servislerimizin Restart yapılması gerekmektedir.

Bu Restart mevzusu Shared Memory, Named Pipe, TCP\IP yapılarımızın hepsi için geçerlidir.

TCP\IP yapısında bir değişiklik yaptıktan sonra  kullanıcılara belirtilen yeni portun öğretilmesi için browser servisinin açık olması gerekmektedir. Browser servisini başlatmak yerine Sunucu_adı, Port_numarası şeklinde de yazarız.

Browser servisinin açık olması neden önerilmez. Çünkü veritabanlarına bağlanmadan tüm veritabanlarının isimleri görülmektedir. Buda bir risktir. Bazı yazılımlar aracılığıyla sql server port numarası öğrenilebilir.

Bağlantı ekranında sağ alt taraftaki Options kısmına tıklanır.

Gelen ekranda Connect to database kısmında Browse server bölümüne girilir.

Gelen ekrana Yes diyoruz.

Gelen ekranda tüm veritabanlarımız görünmektedir.

Port numarası ile bağlanma şekillerimiz. Aşağıdaki bağlanma şekillerini yazıp Windows veya Sql auth. Modlarında bağlanabiliriz.

S3\TEST,1433—– 192.168.1.2,1433—– S3,1433—- 192.168.1.2\TEST,1433

Bu bağlanmalar sunucunda hata ile de karşılaşabiliriz. Bunun birden fazla sebebi olabilir. Akla gelmesi gereken ilk iki seçenek firewall açık olabilir veya antivürüs programı yüklü olabilir. firewall açıksa tüm portları engeller kendimiz özel yol tanımlamamız gerekiyor.

Yukarıdaki bağlantı şekilleriyle bağlanmayı tercih etmeyip kendimizin belirlediği bir isimle bağlantımızı gerçekleştirebiliriz. Bu konu Alias makalesinin konusu olmuş olacak.

Son olarak şunu belirteyim dinamik port 0 değerinde kalırsa rastgele bir port değerini aldığını yukarıda söylemiştim. Şimdi bunu örnek üzerinden göstereyim.

Yukarıdaki resimde dinamik port değerim 0 olarak görülmekte. Şimdi sql server servisimi Restart edeyim. Zaten port değişikliği yaptıktan sonra servisi Restart etmem gerektiğini söylüyor.

Servisimi Restart ediyorum.

Tekrardan port ekranımıza baktığımızda dinamik portun rastgele bir değer atandığını görmüş oluyoruz.

Bu sebepten dolayı dinamik port değeri 0 olarak bırakılmaması gerekmektedir. Çünkü Browser servisi kapalıysa başımıza sıkıntı açabilir.

Bu makalede Sql Server Configuration Manager kısmını detaylı bir şekilde ele almış olduk başka bir makalede görüşmek dileğiyle.

“Ey insan! Seni yaratan, şekillendirip ölçülü yapan, dilediği bir biçimde seni oluşturan cömert Rabbine karşı seni ne aldattı?” İnfitar-6-8

Author: Yunus YÜCEL

2 thoughts on “MSSQL Server Configuration Manager

Bir yanıt yazın

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