Sql Server 2016 Kurulumu ve Konfigürasyonu

SQL SERVER 2016 KURULUMU VE KONFİGÜRASYONU

    Sql Server kurulumları genelde, next-next diye tabir ettiğimiz, paket programların kurulumları gibi yapılmaktadır. Yazılımcı firma bir Sql Server ister ve IT sorumlusu hızlı bir şekilde Sql Server’ı kurar, IP ve login bilgilerini verir. Genelde bu şekilde kurulduğundan ileride çıkabilecek sorunlar ve buna bağlı performans sıkıntıları düşünülmez. Varsayılan ayarlar ile kurulan Sql Server’lar çoğu zaman sıkıntılara sebep olmaktadır.

    

    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’ı kurarken neden doğru olarak yapılandırmalıyız diye soruyor olabilirsiniz, Microsoft bunu neden düşünmüyor da diyebilirsiniz. Bu konuyu kısaca özetlemek gerekir ise, eskiye yönelik uyumluluk desteğinden dolayı varsayılan olarak gelen ayarların çoğu yanlış oluyor. İşletim sisteminin yapılandırması da Sql Server performansı için varsayılan ayarlarda doğru olmuyor. Instance ve database seviyesinde de konfigürasyon ayarları sizin yapınıza göre ayarlanması gerekmektedir.

 

    Ayrıca kurulumdan sonra, Sql Server bakım planlaması ile alakalı bir konfigürasyon yapmamaktadır. Bakım planlarının oluşturulması, ileride oluşabilecek bir çok soruna engel olabilmektedir. Bakım planları kapsamına Sql Server’In kurulu olduğu işletim sisteminin updateleri ve Sql Server’ın updatelerini de kapsamaktadı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. Sanal platforma Sql Server kurmadan önce, mutlaka Sql Server Vİrtualization makalemi okumanızı öneririm. 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.

 

    BIOS/UEFI tarafında ise en son çıkan sürümün yüklenmesi sunucunun kararlı çalışmasında faydalı olacaktır. Bu tarz yüklemeler için zaman ve planlama yapmak zor olduğu için, Sql Server kurulmadan önce son sürümlerine yükseltilmelidir. Bios’un yanında diğer tüm donanım firmware’lerinin de son sürümlerine güncellenesi gerekmektedir. Özellikle storage ve network firmwareleri önemlidir. Bios ve firmware güncellemeleri, çoğu zaman sebebi bulunamayan performans sorunlarının düzelmesini sağlamaktadır.

 

    Donanım tarafında diğer önemli konulardan biri de, device drivers – aygıt sürücüleridir. Bir server işletim sistemi kurulumunda device manager’a gelip kontol ettiğimizde, eğer bir uyarı veya hatalı bir device görmüyor isek, sorun olmadığını düşünür ve sistemimizdeki tüm deviceların driverlarının kurulu olduğunu düşünürüz. Üreticilerin sunduğu device driverlar, Microsoft’un driverlarından daha iyi çalışmaktadır. Microsoft driveları genel olarak tüm sunucu sistemleri için yazıldığından sizin donanımlarınıza özgü driverlar değildir.

 

    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.

 


SS2016 – 1

 

    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

 


SS2016 – 2

 

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.

Bench sekmesine gelerek, Bench Cpu ile Cpu’yu test edelim.

 


SS2016 – 3

 

Burada dikkat etmeniz gereken, Specication da yazan clock speed ile core speed da yazan closk speed aynı mı? Power Options’dan power plan’ı high performance olarak ayarladığımız için core speed’imiz aynı clock speed’da yazan Cpu’nun en yüksek clock speed’ına ulaşmaktadır. Eğer power saver seçeneklerini hem Bios hem de power options’dan ayarlasaydık, burada core speed daha düşük çıkacaktı, sunucu istek geldiği zaman Cpu’nun clock speed’ini yükseltecekti. Sql Server için böyle bir kullanım önerilmemektedir.

 

    Cpu kontrollerinden sonra Windows tarafında verilmesi gereken yetkileri inceleyelim. Local policy üzerinde Perform Volume Maintenance Tasks ve Lock Pages In Memory ayarları için Sql Server service account’una yetkilendirme yapmamız gerekmektedir. Sql Server’ı çalıştıracak olan hesap, standart bir hesap olduğu için, hiçbir yetkiye sahip değildir. Yetkiye sahip olmadığı için Sql data dosyaları büyüdüğünde sıkıntıya yol açmaması için local poicy üzerinde Perform Volume Maintenance Tasks yetkilendirmelerini ayarlamamız gerekmektedir. Bir backup dosyasını restore etmek istediğiniz de, eğer Sql server service account’ınızın yetkisi yok ise restore işlemini yapamazsınız. Bu gibi sıkıntıların önüne geçmek için bu yetkiler verilir.

 

    Local Group Policy editor’u açmak için, Server 2016 arama bölümüne gpedit yazıyoruz.


SS2016 – 4

 

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.

 


SS2016 – 5

Açılan ekranda “Add user or group” diyerek, sql servis hesabını ekliyoruz.

 


SS2016 – 6

 

Active Directory üzerinden bir servis account’u açacağınız için, location kısmından Entire Directory seçtikten sonra sql servis hesabını ekleyebilirsiniz. Mevcut Sql Server’ınız da bu ayarları yaptıktan sonra, Sql Server’ı restart etmeniz gerekiyor. Lock Pages in Memory’deki kullanıcı ekleme işleminin aynısını “Perform Volume Maintenance Tasks” içinde yapıyoruz. Ayarları yaptıktan sonra, Local policy ekranın Security Settings sütununda değiştirdiğimiz ayarlar aşağıdaki gibi gözükecektir.

 


SS2016 – 7

 

    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

 

    Sunucu donanım tarafında ise, Hyper Threading ayarları kontrol edilmelidir. Eğer HT açık olacak ise Sql Server kurulmadan bu ayarı açmanız gerekmektedir. HT konusu Sql Server performansı açısından tartışmalı bir konudur, high-level diyebileceğimiz sunuculara kurulan Sql Server’lar için bu özelliği kullanmayan yapılarda vardır.

 

    BIOS tarafında, power management ayarları kontrol edilmeli, power saving yapılmamalıdır. Makalenin başında bahsettiğimiz NUMA ayarları da kontrol edilmelidir. Memory slotları kontrol edilerek, Cpu başına memoryler ayarlanmalıdır, eğer memorylerinizi düzgün yapılandırmadıysanız, Numa mode’u devreye girmeyecek ve performans konusunda sıkıntılar yaşayacaksınız demektir.

 

    Donanım tarafında son olarak, sunucunuzun desteklediği teknolojileri iyi bilmeniz gerekiyor, hardware virtualization destekliyor mu, virtualization desteği var mı. VT-x Intel Virtualization Technology ve VT-d Intel Vİrtualization Technology for Directed I/O gibi desteklerinin olup olmadığını, sunucunun ürün bilgilerinden kontrol etmelisiniz.

 

Sql Server Kurulumundan Önceki Ön Hazırlıklar:

 

    Donanım ve Windows Server tarafında ön hazırlıklardan sonra, Sql Server kurmanda önce de bir takım ayarlamalar yapmamız gerekecek. Sisteminizde sadece tek bir sql server olmayacağı için, genel olarak Sql Server sunucuları için bir standart getirmeniz, yönetim açısından önemli bir konudur. Sql Server sunucu isimleri, servis hesapları, disk isimleri gibi konularda tüm Sql Server’larda belli bir standart oluştuğunda, bu sunucuların yönetiminde büyük kolaylık sağlayacaktır.

 

    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

 


SS2016 – 8

    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.

 

    Storage yapılandırılmasından sonra, Sql Server’daki tüm disklerin testlerini ayrı ayrı yapmalısınız. Data, Log ve Tempdb için oluşturulan disklerini test ederken, test dosyası büyük boyutlarda ayarlanmalı ve test sayılar birden çok yapılmalıdır. Storage testlerinde ufak ve kullanışlı bir araç olan Crystal Disk Mark programını kullanacağız. İlk olarak Crystal Disk Mark programını aşağıdaki linkten indiriyoruz.

 

http://crystalmark.info/software/CrystalDiskMark/index-e.html

 

Portable (zip) olan versiyonunu indirmenizi öneririm. DiskMark64.exe olan programını çalıştırıyoruz.

Karşımıza gelen ekranda,

 

  1. Test count – Testin kaç kere tekrar edeceğini belirler
  2. Test file size – Test dosyasının boyutu
  3. Test drive – Testin yapılacağı diskin seçilmesi

 

Bu ayarları seçtikten sonra, All butonuna basarak testi başlatıyoruz. Testi D, L, O ve T diskleri için yapılması gerekmektedir.

 

 


SS2016 – 9

 

Üstteki 1 nolu değer, 1 thread de alınabilecek en yüksek write ve read değeridir. 2 nolu değer ise random olarak write ve read değerleridir. Genel olarak bakacağımız alanlar bunlar olmalıdır.

 


SS2016 – 10

 

File menüsünden Copy diyerek, sonuçları text dosyasına almanız mümkündür. Bu test tek SSD ile yapıldı. IBM full flash storage gibi üst düzey bir storage de bu testi yaptığımızda, aşağıdaki gibi, 4,8 gb/s gibi değerleri görmek mümkün.

 


SS2016 – 11

 

Storage testinde mb olarak write ve read değerlerimizi Crystal Disk Mark ile nasıl alabileceğimizi gördük. IO olarak değerleri almak için, SQLIO programının yerine geçen Microsoft DskSpd programını kullanabilirsiniz.

 

    Sql Server kurulumundan önceki hazırlıklardan bahsettikten sonra, Sql Server kurulumuna geçebiliriz.

 

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.

 


SS2016 – 12

 

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.

 


SS2016 – 13

 

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.

 


SS2016 – 14

 

License Terms ekranında “I accept the license terms” seçeneğini tıklıyoruz, ardından Next ile devam ediyoruz.

 


SS2016 – 15

 

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.


SS2016 – 16

 

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.


SS2016 – 17

 

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.

 


SS2016 – 18

 

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.

 


SS2016 – 19

 

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.

 


SS2016 – 20

 

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.

 


SS2016 – 21

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.

 

Number of files – Sql Server’ın tempdb’ye eş zamanlı kullanabilmesi için, Cpu çekirdek sayısına göre tempdb data fileları yapılandırılmalıdır. Best practiceslere göre 2,4 veya 8 olması ideal değerlerdir, çekirdek sayısının yarısına göre ayarlanabilir. Varsayılan olarak bu ekranda 4 adet olarak gelmektedir.

 

Initial size mb – Tempdb data filelarının her birinin boyutunun belirlendiği alandır. Varsayılan olarak 8 gelmektedir. Bu ekranda en fazla 1024 mb değeri verilebilmektedir.

 

Autogrowth – Tempdb data filelarının otomatik büyüme ayarıdır, varsayılan olaran 64 mb olarak gelmektedir. 4 adet tempdb ayarlandığında, 64 * 4 = 256 mb olarak otomatik büyüyecektir. Saniyedeki disk yazma oranınız bu değerden düşük ise, autogrowth değerini düşürmenizde fayda vardır.

 

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.

 

 


SS2016 – 22

 

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.

 


SS2016 – 23

 

Kurulum başarılı bir şekilde tamamlanmış oldu.


SS2016 – 24

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 indirilebilir en son sürümü kuracağız. Daha önceki Sql Server versiyonlarında management studio features selection kısmında karşımıza gelirdi. Management Studio’yu indirmek için, Sql Server setup.exe’yi çalıştırabilir veya internetten Sql Server 2016 Management Studio olarak aratıp da indirebilirsiniz.

 


SS2016 – 25

 

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.

 


SS2016 – 26

 

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.

 


SS2016 – 27

 

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/

 

İlk olarak Sql Server build numaramıza bakıyoruz.

 


SS2016 – 28

 

13.0.1601.5 build numaramız bu, şimdi yukardaki siteye giderek, son güncellemeler var mı kontrol ediyoruz. SP’siz RTM den sonra Service Pack 1 çıktığı görülmektedir. Linke tıklayarak SP1 i indirip, kurulumu yapabilirsiniz.

 


SS2016 – 29

 

Service pack 1 den sonra çıkan güncellemeleri de kontrol etmemiz gerekiyor, bunun için sqlserverbuilds sitesinde Sql Server 2016 bölümüne geliyoruz.

 


SS2016 – 30

 

SP1 den sonra, build numarası 13.0.4411.0 olan bir kümülatif güncelleme çıkmış durumda. Bu güncellemeyi de indiriyoruz.

 

Güncellemelerde dikkat edilmesi nokta, en son service pack kurulduktan sonra, son service pack ten sonra çıkan kümülatif update’i ayrı kurmaktır. Service packler ana güncellemelerimiz olmaktadır, service pack kurmadan, kümülatif update kurmamalısınız. Kümülatif updateler service pack leri içermez. Kümülatif updatelerin başlığında hangi service pack’e ait olduğu bilgisi bu yüzden yazmaktadır.

 

    Sql Server engine güncellemelerinden sonra, management studio güncellemelerini kontrol etmek için, management studio’daki Tools menüsünden “Check for Updates”e tıklıyoruz.

 


SS2016 – 31

 

Update ekranında SSMS’in bir güncellemesi olduğunu ve build no bilgilerini görmekteyiz. Update butonu ile son güncellemeyi indiriyoruz.

 


SS2016 – 32

 

Sql Server updatelerini tamamladıktan sonra, Instance seviyesindeki ayarların varsayılan olarak bırakmamak gerekiyor. Sql Server kurulumunda bu ayarlar varsayılan olarak gelmektedir. Olması gereken Instance ayarlarını gözden geçirelim.

 

Instance adınıza sağ tıklayıp Instance Properties ekranını açıyoruz. Bu ekranda Instance seviyesindeki genel ayarlarınız bulunmaktadır.

 

 

 


SS2016 – 33

 

General

 

General sekmesinde, Sql Server ile alakalı genel bilgileri vermektedir. Version no, memory, cpu, Sql Server’kurulu olduğu dizin, collation bilgilerine v.b. bu ekrandan bakılabilir.


SS2016 – 34

Memory

 

Varsayılan olarak gelen memory değeri, sunucudaki tüm memory’i kullanmaktadır. İşletim sistemi kaynakları için yaklaşık olarak en az 4 gb ram ayrılmalıdır. Genel olarak bu değeri, memory’nin %10’luk kısmını işletim sistemine ayrılmaktadır. Örnek olarak 32 gb memory’e sahip bir Sql Server için, 4 gb işletim sistemine ayırdıktan sonra, buradaki memory alanına 1024 * 28 = 28.672 değerini yazmanı gerekiyor. Eğer Sql Server için bir memory kullanım sınırı vermezseniz, Sql Server, sunucu üzerindeki tüm memory’i kullanacak ve işletim sistemi kaynaklarının çalışabilmesi için yeterli miktarda memory kalmayacaktır, bu sebepten dolayı da, işletim sisteminde sıkıntılar meydana gelecektir.

 


SS2016 – 35

 

Processors

 

İşlemci sekmesinde, Sql Server sunucu üzerindeki tüm cpu çekirdeklerini yönetebilmektedir. Eğer sunucu üzerinde birden fazla instance kurulu ise, Processors sekmesinden, her instance için farklı çekirdekler atanarak, Cpu iş yükleri dağıtılabilir.

Boost Sql Server Priority genellikle işaretlenerek, Sql Server’ın çalışmasına öncelik verilmek istenir, bu özellik farklı sıkıntılara yol açabileceğinden işaretlenmemesinde fayda vardır.

 


SS2016 – 36

 

Security

 

Security sekmesinde, Sql Server ve Windows Authentication olan bağlantı modunu, sadece Windows Authentication’a da alabilirsiniz. Önerilen security ayarı win. Auth.’dır. Windows Authentication ile sadece active directory’e bağlı bilgisayarınız Sql Server’a login olabilir.

 

Login auditing kısmında, Sql Server’a bağlanan tüm kullanıcıların ve hatalı kullanıcı adı ve şifre girişi yapanların kayıtlarını tutmak istiyorsanız, Bıth failed and successful logins seçeneğini seçmeniz gerekiyor.


SS2016 – 37

 

Connections

 

Sql Server’a eş zamanlı olarak kaç kullanıcının bağlanacağını, Maximum number of concurrent connections bölümünden ayarlayabilirsiniz, varsayılan olarak bu alan sınırsız olarak 0 gelmektedir.

 

Remote query timeout seçeneği varsayılan olarak 600 seconds – 10 dakika olarak gelmektedir, 10 dakikadan fazla süren sorgular için Sql Server timeout verecektir.


SS2016 – 38

 

Database Settings

 

Index fill factor değeri bu ekrandan varsayılan olarak değiştirilebilmektedir.

 

Backupları compress olarak varsayılan ayarı yapılabilmektedir. Backupları compress olarak almak, hem disk alanı hem de daha hızlı yedek alınarak, Sql Server’ı gereksiz yere yormamış oluruz.

 

Database default locations’da, kurulum sırasında belirtmiş olduğumuz data, log ve backup klasörleriniin varsayılan lokasyonları buradan değiştirilebilmektedir.


SS2016 – 39

 

Advanced

 

Bu sekmede dikkat edeceğimiz 3 tane alan vardır,

 

Optimize for Ad hoc Workloads – Sql Server’a gelen tekil sorguların, plan cache’lerinde optimizasyon yaparak, bu sorgulardaki IO maliyetlerini en aza indirger. Bu değer varsayılan olarak False gelir, True olarak değiştirdiğiniz aktifleşir.

 

Cost Threshold for Parallelism – Sorgulardaki maliyet eşği de diyebiliriz bu seçenek için, varsayılan olarak 5 gelmektedir, sorgulardaki execution planları incelediğimizde, Select operatöründeki operatör cost değeri 5’in üzerinde ise, Max Degree of Parallellism’e bakarak, sorguyu tek cpu yerine birden çok Cpu’ya dağıtacaktır.

 

Max Degree of Parallellism – Sorguları paralel olarak cpu lara bölen bir değerdir. Varsayılan olarka 0 gelmektedir. 0 gelmesi eşzamanlı paralel çalışmayacak anlamına gelmez. Çekirdek sayısı az olan bir Sql Server’da buradaki değeri 1 yaptığınızda, diğer çalışan sorgular içinde kaynak ayıracaktır. Cost Threshold değeri sorgularda varsayılan değerin üzerine çıkıtğından buradaki maxdoop değerine bakar ve sorguyu buna göre paralel çalıştırır. Bu iki değere, Sql Server’daki sorgular incelenerek karar verilmesi en doğru yöntemdir.

 


SS2016 – 40

 

    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.

 

    Donanım ve Instance bazındaki performans ayarlarından sonra, Sql Server’daki sorguların ve indekslerin performanslarını sürekli incelemeniz ve gerekli iyileştirmeleri yapmanız gerekmektedir. Sql Server performansı sürekli ilgilenilmesi ve aksiyon alınması gereken bir konudur, birkaç yerde yaptığınız iyileştirmeler ile tamamlanacak bir operasyon değildir.