18 Ocak 2016 Pazartesi

SQL Server Kurulumunda ve Sonrasında Yapılacak Temel Performans Ayarları

SQL Server Kurulumu yaparken çoğunlukla  bazı önemli noktalara değinmeden -bende yıllarca bu anlatacaklarım gruba dahildim- kurulum yaparız.Biraz sonra değineceğim konular test sistemleri veya normal PC kurulumları için önemli olmayabilir ama ERP ve Üretim ortamına hizmet veren sunucu sistemleri için önemsenmesi gerekir.Aşağıda anlattığım çoğu bilgiyi bende şu ana kadarki deneyimlerim ve gittiğim eğitimler-seminerler sayesinde öğrendim ve mutlaka eksik olduğum konular halen var.Öncelikle sunucu konfigürasyonumuz önemli olmaktadır. Sunucumuzun günümüz şartlarına göre donanım özellikleri CPU,RAM ve Disk yapılandırmasını baştan planlamalıyız.SQL Sunucu'yu fiziksel veya Sanal bir sunucudamı konumlandıracağız veya sanal platform ise HYPER-Wmware ikilisinden hangisini tercih edeceğiz gibi seçenekleri önceden değerlendirip karar vermeliyiz.Ardından aşağıdaki adımları gerçekleştirebiliriz;

  • İşletim sistemimizi RAID 1 yapılandırmalı  disk sistemi üzerinde tutmalı SQL Server'ın önemli sistem ve kendi üretim veritabanlarımızı,yedekleme dizinlerimizi burada tutmamalıyız.Normalde SQL Server varsayılan olarak C diski ve alt dizinlerini kurulumda hedef olarak seçmektedir.

  • SQL Sunucu kurulumu sırasında mdf dosyamız RAID yapılandırması olan Disk dizisinde konumlandırılabilir.Bu bize Fault Tolerance faydası sağlar.Örneğin hem hız hem performans için RAID 5 yapılandırmalı bir disk kullanabiliriz.Transaction Log kayıtlarının tutulduğu ldf dosyası ise mdf dosyasından farklı bir sürücüde konumlandırılabilir.

  • Bir diğer konu TEMPDB veritabanının nerede tutulacağı konusudur normalde kurulum sırasında TEMPDB C dizini altına konumlanmakta olup sonradan T-SQL komutları ile gerekirse farklı disk sürücülerine taşınıyordu.SQL Server 2016 ile birlikte TEMPDB veritabanını kurulum sırasında başka sürücülere taşıyabilmekte veritabanı dosyalarına büyüklük ayarlamaları yapabilmekteyiz.TEMPDB'de işletim sisteminden bağımsız RAID yapılandırmalı veya SSD özelliğindeki bir diskte tutulabilir.Ayrıca diğer bir performans ayarı ise Tempdb autogrowth özelliği database özelliklerin tıklanıp enable yapılmalı, autogrowth boyutu  %10 değeri yerine , 1 MB olarak değiştirilmeli,CPU core sayısı kadar ndf dosyası oluşturmalıyız.
Peki kurulumu tamamlayınca ne yapabiliriz?Öncelikle SQL Server Management Studio açılıp server instance üzerinde sağ klik ile properties kısmına gelinir buradan Memory bölümüne geçilir.Normalde SQL Server hem Dinamik Hem Statik Ram yapılandırmasını desteklemektedir ve versayılan olarak sistem dinamik Ram desteği ile gelir burada 2147483647 MB rakamını görürüz.SQL Server normalde sistemdeki fiziksel belleği sonuna kadar kullanır ve tepe değerlere  gelince page file'a yüklenir.Çok tartışılan bir konudur ama genel kanı  uzmanlarında önerdiği istikamette Static Ram kullanımıdır.Örneğin sistemimizde 128 GB fiziksel bellek var biz minimum ve maksimum bölgesindeki değerlere örneğin 128 GB fiziksel bellek için 90 GB değerini verebiliriz ve SQL Server bu sınır değerini kullanıp RAM yönetimini buna uygun olarak yapar.Diğer bir özellik ise sistem özelliklerinden page file yönetimini Windows İşletim sistemi yerine bizim ayarlayacağımız değerler ile kontroludur.Burada Page File için ayrı disk alıp diğer uygulamaları etkilemeyecek şekilde ayarlama yapılabilir.Ardından tamamlanması gereken önemli konu ise SQL Server Management studio açarak ister GUI ekranında isterde Query ekranında yedekleme görevlerini ayarlamamız yöneünde olacaktır.Bundan sonraki yapacaklarımız ise sorgu performansları ayarlanlaması,index bakımı ve DBA görevlerimizin gerçekleştirilmesi yönünde olacaktır.Bu yazıyı yaşadığım deneyimlere göre güncel tutmaya çalışacağım.

17 Ocak 2016 Pazar

SQL Server 2016 CTP 3.2 Sürümü TEMPDB

SQL Server 2016 CTP 3.2 Sürümü kurulumu yaparken yükleme esnasında dikkatimi çeken bir değişiklik olduğunu farkettim.Normalde önceki sürümlerde kurulum esnasında TEMPDB veritabanının yerini sonradan belirlerken SQL Server 2016 sürümü ile birlikte kurulum esnasında TEMPDB veritabanının yerini belirleyebiliyoruz.Normal şartlarda performans açısından TEMPDB işletim sisteminin olduğu disk'te olmamalı farklı bir disk'te hatta mümkünse işletim sisteminden bağımsıuz RAID yapılı veya SSD  yapısındaki diskte depolanmalıdır.İlgili Kurulum ekranı aşağıdaki gibidir;


14 Ocak 2016 Perşembe

SQL SERVER "sp_updatestats" Komutu

"sp_updatestats" SQL Server'da istatistik güncelleme komutu olarak bilinmekte olup İstatistic'te temel hedef veriyi en hızlı ve en az maliyetli şekilde operatörün- veri talebinde bulunan kişinin karşısına getirmektir.Bununla ilgili geçenlerde aşağıdaki sorunu yaşadık;

Netsis Programında Maliyet Muhasebesi Raporu hazırlayan arkadaş Netsis programında Aralık 2015 dönemine ait safhalı maliyeti çalıştırdığında belirli bir süre geçtikten sonra program donuyor yanıt vermiyordu(Bu arada Ram ve CPU kullanımı normal seviyelerdeydi).Sonuç olarak SQL Server Profiler ile gerekli kullanıcı kısıtını verip incelediğimizde T-SQL update komutu çalışıyor ve  belirli bir süre sonra  logout durumuna geçiyordu.Netsis ile yaptığımız görüşmelerde "sp_updatestats" komutunu çalıştırıp istatistikleri güncelledik.Maliyet Muhasebesi programını tekrar çalıştırdığımızda sorun ortadan kalkmıştı.Sonuç olarak istatistiklerin güncel olması SQL Server performansı açısından çok önemli bir konudur.İstatisticlerin otomatik update olması için ise veritabanı özelliklerinde  options bölümünde Auto Update Istatistics parametresinin True olması gerekmektedir.











6 Ocak 2016 Çarşamba

HYPER-V SUNUCUSU 1071 KODLU HATA VE ÇÖZÜMÜ(LOCKED HATASI)

Hyper-v sisteminde bulunan failover cluster olan sanal işletim sistemimizi(sql ve netsis sunucusu) shut down komutu ile kapatıp yeniden başlattığımızda  makine "The operation attempted on cluster resource 'Virtual Machine netsissrv' of type 'Virtual Machine' in clustered role 'netsissrv' could not be completed because the resource or one of its dependents has locked status".  hatası vererek başlamadı.İlgili hata ekranı aşağıda belirtilmiştir;






Hatanın sebebi ise sanal sunucuların merkezi sunucu'dan sanal imaj  yedeğini alan Acronis yazılımı backup ünitemizde yer olmadığı için belirli bir yerde yedeklemeyi kesmiş ve yedeklemeyi kestiği sunucu yukarıda hata aldığımız sanal sunucu olduğu için locked durumuna geçmiş ve işletim sistemini başlatamamıştık.Acronis yazılımının kurulu olduğu merkezi sunucu'da yarıda kalan imaj yedekleme görevini durdurunca sanal işletim sistemini kapatıp yeniden başlatarak sorunu çözmüş olduk.