SQL SERVER 2016 KURULUMU VE KONFİGÜRASYONU

  

    Bu makalede sizlere, Sql Server kurulmadan önce, kapasite planı nasıl yapılmalı, donanım yapılandırması nasıl olmalı, neden Sql Server’ımızı performans ayarlarına uygun bir şekilde kurmalıyız sorularına fikir vermeye çalışacağım.

    Sql Server’ın en son sürümü olan Sql Server 2016 versiyonu Haziran 2016’da tam sürüm olarak duyuruldu. 16 Kasım 2016 tarihinde de Sql Server 2016’nın Service Pack 1’i çıktı. IT’ciler arasındaki genel yaklaşıma göre, Microsoft ürünlerinin ilk service pack’i çıkmadan geçiş veya yeni kurulum yapmazlar, Sql Server 2016’da SP1’in duyurulduğunu özellikle belirtmek istedim.
    İlk olarak Sql Server Edition’ları temelde nelerdir bunları inceleyelim. 

  • Sql Server 2016 Enterprise Edition: Tüm özelliklerin olduğu en kapsamlı versiyondur. Lisanslama bedeli genellikle core-base olarak yapılır. High Availibity çözümlerinin tümünü kapsar. İşletim sistemini desteklediği Cpu ve memory’nin hepsini kullanabilir, Cpu ve memory kullanımında her hangi bir kısıtlama yoktur. 
  • Sql Server 2016 Standart Edition: Standart veritabanı işlevleri için kullanabileceğiniz versiyonudur. Lisanslama maliyeti daha uygun olan çözümdür. 128 gb memory kullanım sınırı vardır. Fiziksel ve sanal ortamlrada 4 soket Cpu ve 24 fiziksel veya sanal çekirdek kullanılabilir. Sanal ortamlarda, sanal makinanın Cpu’larını bu yapılandırmaya göre ayarlamak önemlidir, aksi takdirde Sql Server sanal cpu’ları tam olarak kullanamaz.
  • Sql Server 2106 Web Edition: Hosting ve providerlar için olan özel bir sürümdür. 64 gb memory kullanım sınırı vardır. 4 soket Cpu ve 16 fiziksel veya sanal çekirdek limiti bulunmaktadır. 
  • Sql Server 2016 Developer Edition: Dba ve yazılımcılar için Sql Server’In tüm özelliklerini kullanabilmeleri için sunulan bir sürümdür. Ticari olarak kullanılması uygun değildir. Memory ve cpu kısıtlaması yoktur, Enterprise sürümdeki özelliklere sahiptir.
  • Sql Server 2016 Express Edition: Lisans gerektirmeyen, küçük uygulamalar için kullanılan sürümüdür. 1 gb memory kullanım sınırı vardır. 1 soket Cpu ve 4 fiziksel veya sanal çekirdek limiti bulunmaktadır. Veritabanı boyutu da 10 gb ile sınırlıdır. 

    Sql Server kurulumundan önce, Sql Server’ın kurulacağı işletim sisteminde ön hazırlıklar yapılmalıdır. İlk olarak işletim sisteminin tüm updatelerinin tam olması gerekmektedir. Sql Server güvenliği ilk olarak üzerinde kurulu olduğu Windows Server’ın güvenliği ile korunmaktadır. Bu sebepten dolayı işletim sistemi updateleri önemlidir. Donanım özelliklerinin de hazırlanması gerekmektedir. Sanal platformlara kurulan Sql Server’lar için Numa mode’u hayati öneme sahiptir. Sql Server’ı çalıştıracak service account’unun açılması, bu hesabın oturum açma özelliğinin kapalı olması ve şifresinin süresinin bitmemesi gerekmektedir. 

İşletim Sistemi Tarafındaki Ön Hazırlıklar:

    İşletim sistemi olarak da, yeni çıkan Windows Server 2016 kurulabilir, veya bir önceki sürüm olan Windows Server 2012 R2 işletim sistemi de kullanılabilir. Windows Server editionlarından Standart edition daha az lisans maliyeti olacağından tercih edilebilir. Datacenter edition kurulmasına gerek yoktur, datacenter edition’a Sql Server kurulması daha iyi bir performans sağlamaz. İşletim sistemi, storagelerdeki Ssd veya flash bölümlere kurulursa daha hızlı boot olur, bu alanlara kurulması Sql Server’ın performansına katkı sağlamaz. İşletim sistemi kurulduktan sonra, Sql Server kurulmadan önce tüm updatelerinin yapılması gerekmektedir.    Donanım konfigürasyonunu yaptıktan sonra, power management – güç yönetimin yüksek performans da çalışması gerekmektedir. Sql Server’ın kurulu olduğu bir sunucunun güç tasarruf yapması beklenemez. Windows Server kurulduktan sonra güç yönetimi varsayılan olarak Balanced yani dengeli olarak ayarlı gelmektedir. Power management’a gelerek, bu ayarı High Performance olarak seçilmelidir. Bios tarafında ise, power management seçeneklerinde yüksek performanslı olan ayar seçilmelidir. 
    Power ayarlarından sonra Cpu’yu test edelim. Cpu testi için ücretsiz bir yazılım olan Cpu-Z programını kullanacağız. Bu program Cpu hakkında kaç mhz hızında, kaç core kaç thread gibi bilgileri içermekle birlilkte, Cpu üzerinde benchmark testleri yapmaktadır. Programı aşağıdaki linkten indirip Server 2016 ya kuruyoruz.
http://www.cpuid.com/softwares/cpu-z.html

Kurduğumuz program,

Name işlemcinin adı, Code name’i Sandy Brige olan bir işlemci olduğunu, Specification kısmında Cpu’nun clock speed’ini gösteriyor. 
Clocks bölümünde ise, her çekirdek için Core Speed’i ayrı ayrı göstermektedir. Bu örnekte 12 core’a sahip bir server, selection kısmında Processorler 12 adet olarak gözükmektedir. 
Local Group Policy editor’u açmak için, Server 2016 arama bölümüne gpedit yazıyoruz.
Local Group Policy Editor’de;
Computer Configuration – Windows Settings – Security Settings – Local Policies – User Right Assigment bölümüne geliyoruz. Buradaki ayarlar alfebetik sırayla karşımıza gelmektedir. Yan taraftan ilk olarak Lock Pages in Memory ayarını açıyoruz.

Sql Server kurmadan önceki diğer ön hazırlıklara bakacak olursak, antivirüs yazılımlarının .mdf, ndf ve .ldf uzantılı sql data ve log dosyalarını taramaması gerekmektedir. Bu dosyalara her veri kayıt-silme-güncelleme işleminde antivirüs tarafından tarama yapılırsa, Sql Server’ın performansını olumsuz yönde etkileyecektir. 
Sql Server sunucuları yeniden başlatılmak istendiğinde, hiç beklemeden restart olmalıdır. Normal sunuculardaki gibi çalışan proseslerin kapanmasını beklemeden, hızlı bir şekilde restart edilmelidir. Eğer restart’ı etikleyen bir durum var ise bunun önüne geçilmelidir. Run ekranından aşağıdaki komut ile sql server’lar hızlı bir şekilde restart edilebilir. Buradaki harflerin anlamları şunlardır, -r Restart, -f Force, -t time, 0 restart etmek için kaç saniye bekleme süresi olacağını belirttiğimiz alandır. 
Shutdown –r –f –t 0
 Sql Server için, birden fazla disk açılmaktadır, data, log, tempdb ve backuplar için ayrı ayır diskler açılır. Disk isimlerinde standardizasyon önelidir. Özellikle mirroring ve AlwaysOn gibi sistemlerde bunu yapmak çok önemlidir. Bu konuyu örnekleme gerekirse. Aşağıdaki gibi bir yapılandırma uygulanabilir;

  • D:\DATA
  • L:\LOG
  • T:\TEMPDATA
  • O:\TEMPLOG
  • Y:\BACKUP

Storage seçimi Sql Server için önemli bir konudur. Ne kadar iyi bir sunucu alsanız da, storage konusunda eğer dikkat etmezseniz Sql Server performans konusunda dar boğaz yaşayabilirsiniz. Storage konfigürasyonu için en önemli konu ise, storage’in ne kadar IO değeri vereceğidir. Günümüzde flash storageler en performanslı storageler arasındadır, chip üzerinde depolama hizmeti sunan bu storagelar gün geçtikçe yaygınlaşmaktadır. Flash storagelerden sonra, SSD diskler ile yapılandırılmış storageler gelir. Storage yapılandırmaları arasında çok büyük farklar vardır, storage almadan önce satın aldığınız firmadan, storage’in IO ve latency değerlerini mutlaka öğrenmelisiniz. İhtiyacını olan IO değerini belirtlemeli ve storage konfigürasyonunu buna göre yaptırmalısınız. Sadece storage’in disk alanı önemli değildir, IO değerlerinizi karşılayacak ve ilerde büyümeye müsait olan konfigürasyonları seçmelisiniz. 
Storage seçiminden sonra, storage de kullanacağız RAID tipi önem kazanmaktadır. RAID yapısı, birden çok disklerin yönetilmesidir. Tek bir disk üzerinden alacağınız performans değerli kısıtlıdır. Storage üzerinde daha fazla performans ve kapasite alınabilmesi için, diskler RAID yapısına geçirilir. Sql Server için genellikle kullanılan iki tip RAID level vardır. RAID 5 ve RAID 10, RAID 5’in read değerleri iyi olduğundan data diskleri için kullanılabilirler. RAID 10 lar ise, write işlemlerinin yoğun olduğu log diskleri için kullanıldığında Sql Server’da daha iyi performans alınabilir. Genellikle karşılaşılan durum, storage alındığında tek bir LUN olarak konfigüre edilir ve daha sonra log diskleri için ayır bir LUN istediğinizde bunun mümkün olmadığını belirtirler. Data diskleri için ideal olan RAID 5 level, tüm storage için konfigüre edilmiştir, fakat log diskleri için ayır bir LUN istendiğinde storage’in yeniden yapılandırılması gerektiği bilgisi size verilir ve bu operasyon çok zor olduğundan istediğiniz konfigürasyon olmayacaktır. Bu sebeplerden dolayı, storage konfigürasyonu yapılmadan önce mutlaka istediklerinizi belirtmelisiniz. Data ve log diskleri için ayrı RAID levellar ve ayrı LUN’lar istediğinizi önceden belirtmeniz gerekir. Storage konusunda diğer önemsenmeyen konu ise host bus adaptörlerdir, genellikle 2 adet HBA takılır ve bunlar yedekli olur. Sql Server için ideal olan, data ve log diskleri için 2 ayrı HBA’dır. Böyle bir istek karşısında storage’i satan firma veya storage’i konfigüre edenler, size bunun gereksiz olacağını tek bir fiber channel’in yeterli olacağını söylerler. Mantıksal olarak tek bir HBA ve tek bir fiber channel kapasitesi işinizi görecek gibi gözükür, fakat data diskleri için read istekleri, log diskleri içinde write isteklerini birbirinden bağımsız ayrı LUN’larda ve ayrı HBA’lar üzerinde yaptığınızda, latency denen gecikme değerlerini minimum seviyeye düşürürsünüz. Sql Server storage performansını da ayrı LUN’lara ayırdığınızdan daha rahat izleyebilirsiniz. 
Sql Server verileri 8kb’lik 8’li gruplar halinde saklamaktadır, bu da 64bk lik data parçaları demektir. Disklerde veri okurken ve yazarken gereksiz boşluklar olmaması için 64kb allocation unit seçerek formatlamalıyız. Disk management’tan bu işlemi yapabileceğiniz gibi ayrıca DiskPart ile komut satırından da yapabilirsiniz. 
Sql Server 2016 Kurulumu:

 

Sql Server kurulumunda, sadece ihtiyacınız olan featureları kurmalısınız, Sql Server Feature Selection ekranındaki bütün featurelar, production Sql Server’a kurulmamalıdır. Özellikle Analysis Service, Integration Service ve Reporting Service gibi iş zekası uygulamaları prod Sql Server ile birlikte kurulmamalıdır. Diğer featurelardan da sadece ihtiyacınız olanları seçip kurulum yapmalısınız, eksik olan bir feature daha sonra kolaylıkla kurulabilmektedir. Bir feature’ı test etmek için prod ortamına kurmak yerine, Sql Server’In developer edition’ı ile test edebilirsiniz, bu edition Sql Server’ın tüm özelliklerini kapsamaktadır. 
Sql Server’ı kurulumu için ihtiyacımız olan ISO dosyasını Volume Licensing Center’dan indiriyoruz. ISO dosyasını mount ettikten sonra setup.exe’yi “Run as administrator” seçeneği ile çalıştırıyoruz.
Sql Server Installation Center ekranında, Installation sekmesine geliyoruz. Burada New Sql Server stand-alone installation’a tıklayarak kurulumu başlatıyoruz. Sql Server 2016 da, Management Studio artık kurulumun içinde yer almıyor, hemen altında bulunan “Install Sql Server Management Tools” linki ile management studio’yu daha sonra internetten indirip kuracağız. 
Product key ekranında, ücretsiz olan editionlar ve lisans key’i ile kurulum için karşımıza seçenekler geliyor. Volume Licensing Center’dan indirdiğiniz ISO’nun içinde Sql Server’ın keyi otomatik olarak gelmektedir. Sql Server lisansı satın aldığınızda size bir key verilmemektedir. Developer edition seçerek kuruluma devam edelim.
Microsoft Update ekranındaki, “Use Microsoft Update to check for updates” seçeneği ile Sql Server’ın çıkmış olan son güncellemelerini kurulumundan önce kontrol eder ve indirir. Kurulumundan önce kontrol etmekte fayda var. Daha sonra Sql Server güncellemelerini otomatik olarak değil de, test ortamında test ettikten sonra kurmak daha iyi olacaktır. 
Install Setup Files ve Install rules yüklendi. Direkt olarak Feature Selection ekranına kurulum geldi. Yukarda bahsedildiği gibi, sadece ihtiyacımız olan featureları seçiyoruz. 
Database Engine Services, Sql Server’ın temel core servisidir
Client Tools Connectivity, Client ve server arasındaki iletişim için gerekli olan komponentleri içerir
Client Tools Backward Compatiblity, Önceki sürümleri destekleyen komponentleri içerir
Documentation Components, Sql Server içerisindeki help menüsünü kurar, Sql Server eğer internet çıkışı yok ise, bu menü sunucuya iner ve yardım konularına buradan bakabilirsiniz. 
Sql Client Connectivity SDK, ODBC ve OLE DB nin SDK’larını içerir
Gördüğünüz bunlar dışında gereksiz hiçbir feature seçmedik, eğer başka bir feature kurulması gerekirse, tekrardan Sql Server setup çalıştırılır, istenen feature rahatlıkla kurulabilir. Feature seçimi tamamlandıktan sonra Next ile devam ediyoruz. 

Instance Configuration
Instance konfigürasyon ekranında, Sql Server’ın Instance adını değiştirebilir veya varsayılan olarak bırakabilirsiniz. Varsayılan olarak bırakıldığında, Sql Server’a bağlanmak için Windows Server adını girmek yeterli olacaktır. Bir Instance name girildiğinde ise, Serveradı\SqlInstacename yazılarak Sql Server’a bağlanılabilmektedir. Eğer bir sunucuya biden fazla Sql Server Instance kurulacak ise, mutlaka farklı Instance Name’ler verilmek zorundadır. 
Server Configuration
Service Accounts sekmesinde, daha önce belirlediğimiz Sql Server servis hesabını Account name’e gelerek Browse seçeneği ile seçerek ardından şifresini yazıyoruz. 
Sql Server Agent içinde ayrı bir servis hesabı oluşturulmasında fayda vardır. Sql Server Agent’ın startup type’ı varsayılan olarak Manuel gelmektedir. Bu ayarı Automatic’e çekiyoruz. Sql Server Agent ile Sql Server’da otomatik joblar çalıştıracağız.
Sql Server Browser servisi, Sql Server’ı network üzerinde isim ve IP yayını yapar. Güvenlik açısından bu servis varsayılan olarak kapalı gelir.
Grant Perform Volume Maintenance Task Prilevege to Sql Server Database Engine Service, bu seçeneğinin ne olduğunu makalenin başında anlatmıştık, Sql Server data dosyalarının büyümeleri ile alakalı Windows Server tarafında, Sql Server hesabına yetkiler vermiştik. Sql Server 2016’da Service Accounts sekmesine bu özellik eklenmiş oldu. 
Collation sekmesinde, Sql server için istenen collation dil ayarları yapılmaktadır. 
Database Engine Configuration
Server Confuguration sekmesinde, Sql Server’a nasıl bağlanılacağı ile ilgili seçenekler gelmektedir. Önerilen ve güvenli olan yöntem Windows Authentication metodudur, bu yöntem ile Sql Server’ınıza sadece Active Directory’deki kullanıcılarınız bağlanabilir. Domain’e dahil olmayan bir pc’den giriş yapılamaz. Fakat çoğu yazılımlar Mixed mode’u desteklediğinden, genellikle Mixed mode seçilir, bu mode’da sa dediğimiz Sql Server yönetici hesabı vardır, bu hesap için aşağıdaki şekilde olduğu gibi parola oluşturulması gerekir.

Sql Server administrator bölümünde ise, bu Sql Server’ın admini veya adminlerinin kim olacağı belirlenir. Active directory’de Sql Serverlar için bir grup oluşturulup, bu grubun burada seçilmesi daha iyi olacaktır.
Data Directories 
Sql Server data, log ve yedek dosyalarının hangi disk ve hangi klasörde konumlanacağı bu bölümde belirlenir. Daha önce açtığımız data, log ve backup diskleri içine klasörler açarak bu tanımlamayı yapmış oluyoruz.
TempDb
Sql Server 2016 kurulumu ile yeni gelen bir sekmedir, daha önceki kurulumlarda bu özellik yoktu, tempdb’yi Sql Server kurulduktan sonra yapılandırıyorduk. Kaç tane tempdb data file olacağı, bu fileların boyutları, autogrowth ve dizin bilgilerini artık bu ekran üzerinden ayarlayabileceğiz. 
Data directory – Tempdb data dosyalarının hangi disk ve klasörde duracağı bu ekrandan seçilir.
Templog içinde initial size ve autogrowth değerleri varsayılan olarak aynı gelmektedir. Log directory kısmından tempdb log dosyasının hangi disk ve klasörde konumlandırılacağı belirlenir.
Next ile ilerledikten sonra, Ready to install ekranında, Sql Server ile alakalı nelerin kurulacağını gösteren bir ekran geliyor. Configuration file path kısmında bu ayarları bir .ini dosyasına kaydetmektedir, bu dosya ile aynı özellikte başka bir Sql Server’ı komut satırı yardımı ile kurabilirsiniz. Install diyerek kuruluma başlayabiliriz.
Kurulum başarılı bir şekilde tamamlanmış oldu.

Kurulumdan sonra mutlaka sunucuyu restart edin. Sql Server’ı başarılı bir şekilde kurduk, bundan sonra Sql Server güncellemelerinin kurulmasına bakacağız. Fakat Sql Server 2016’da, Management Studio artık Sql Server kurulumunda bir feature olarak gelmiyor. Management Studio artık internetten indirilebilirsiniz.

Install Sql Server Management Tools’a tıkladığımızda karşımıza son sürümün olduğu web sitesi açılıyor.
SSMS-Setup-ENU.exe olarak inen programı çalıştırıp, management studio’yu kuruyoruz. Kurulum otomatik olarak yapılıyor, ek bir ayar yapmaya gerek kalmıyor.
Sql Server 2016 Kurulumdan Sonra Yapılacaklar

 

Sql Server kurulumundan sonra, kontrol edeceğimiz ilk konu Sql Server güncellemeleridir. Sql server database engine ve management studio için olan güncellemeler birbirinden farklıdır. Sql Server güncellemeleri için Instance adının yanında yazan build numarası kontrol edilir. En son güncellemeler Microsoft’un sitesinde bulunmaktadır. Kolaylıkla güncellemeleri takip edebilmeniz için aşağıdaki siteyi kullanmanızı öneririm.
https://sqlserverbuilds.blogspot.com.tr/

SQL  Server build numaramıza linkten bakabiliriz.
Sql Server’ın performanslı ve stabil bir şeklde çalışması için, donanım konfigürasyonundan başlayarak, Sql Server’da yapılması gereken ayarları görmüş olduk. Performanslı bir Sql Server için mutlaka IO gereksinimlerinizi önceden belirlemeli ve donanım ihtiyaçlarınızı buna göre çıkartmanız gereklidir. Donanım olarak zayıf kalan Sql Server sunucularında ne kadar optimizasyon yapsanız da, cpu, memory ve disk dar boğazları yaşamanız olasıdır.