Category Archives: MS SQL Server

Linux üzerine SQL Server Kurulumu

Microsoft, 2016 yılı başında SQL Server 2016 yazılımını çıkardığında Linux işletim sistemine de destek verileceğini açıklamıştı.

Yakın zamanda duyurduğu SQL Server v.Next artık Ubuntu, Red Hat Enterprise ve SUSE işletim sistemlerine kurulabiliyor.

Desteklenen sürümler:

Ubuntu 16.04 ve yukarısı.

Red Hat Enterprise Linux 7.2 ve yukarısı.

Suse Enterprise Server v12 SP2.

https://www.microsoft.com/en-us/sql-server/sql-server-vnext-including-Linux#resources

Hide system objects in Object Explorer

SQL Server da yer alan bu özellik sistem nesnelerinin yanlışlıkla silinmesine karşı gizlenmesini sağlıyor.

Oldukça ilginç çalışan bu özellik her SQL server sürümünde ya da güncellemesinde farklı davranabiliyor.

Technet forumlarında da paylaştığım bu duruma aldığım yanıt ekran görüntüleri ile birlikte aşağıdaki gibidir.

SQL Server 2008 sürümünde sistem veri tabanları ile birlikte birçok sistem nesnesini gizlemektedir.

SQL Server 2008 R2 sürümünde sistem nesnelerini gizlerken sistem veri tabanlarını gizlememektedir.

SQL Server 2012/2014 ve 2016 sürümünde ise kısmı olarak sistemi nesnelerini gizlerken gene sistem veri tabanlarını gizlememektedir.

SQL Server Management Studio -16.5

Announcing SQL Server Management Studio -16.5 Release

Download SQL Server Management Studio (16.5)

New in this release

  1. Fixed an issue where a crash could occur when a database with table name containing “;:” was clicked on.
  2. Fixed an issue where changes made to the Model page in AS Tabular Database Properties window would script out the original definition. Microsoft Connect Item: 3080744
  3. Fixed the issue that temporary files are added to the “Recent Files” list.
    Microsoft Connect Item: 2558789
  4. Fixed the issue that “Manage Compression” menu item is disabled for the user table nodes in object explorer tree. Microsoft Connect Item: 3104616
  5. Fixed the issue that user is not able to set the font size for object explorer, registered server explorer, template explorer as well as object explorer details. Font for the explorers will be using the Environment font. Microsoft Connect Item: 691432
  6. Fixed the issue that SSMS always reconnect to the default database when connection is lost. Microsoft Connect Item: 3102337
  7. Fixed many of high dpi issues in policy management and query editor window including the execution plan icons.
  8. Fixed the issue that option to config font and color for Extended Event is missing.
  9. Fixed the issue of SSMS crashes that occur when closing the application or when it is trying to show the error dialog.

 

SQL Server da Sistem Veri Tabanlarının Farklı Disklere Taşınması

Microsoft SQL server da veri tabanımızı taşımanın birçok yöntemi vardır. Bunlar yedek alma ve yedekten geri dönme, copy database, attach/deattach, veri tabanının scriptini alıp aktarma vb. yöntemlerdir.

Veri tabanlarımız diğer bir sql sunucuya ya da aynı sql sunucudaki farklı bir disk alanına bu yöntemler ile taşınabilir.

Sistem veri tabanları ise bu yöntemler ile taşınamaz. Bunun sebebi de çalıştıkları dizin yani lokasyon bilgisi yapılandırma ayarlarının içerisinde tutulur.

Model, tempdb ve msdb veri tabanı aynı yöntem ile taşınırken master veritabanı farklı bir yöntem ile taşınmaktadır. Taşınma işlemleri kesintisiz yapılamamaktadır. Bu yüzden taşıma işlemlerini gün içerisinde yapmamalısınız.

Model, tempdb ve msdb aynı yöntem ile taşındığından sadece MSDB nin taşınması uygulamasına değineceğim. Diğer ikisi içinde aynı işlemler aynı sıra ile uygulanabilir.

Veri tabanını taşımak için öncelikle aşağıdaki sorgu ile şimdiki yerini kontrol ediyoruz.

 

 

SQL Server 2016 AlwaysOn da Yük Dengeleme

SQL Server 2016 ile birlikte gelen yeniliklerden birisi de AlwaysOn yapısında yer alan ikincil replika sunucuları arasında için yük dengeleme özelliğidir. Bu özellik read-only modunda çalışan replika sunucuları arasında gelen isteklerin yük dağılımlı olarak yönlendirilmesini sağlar.

SQL Server 2012 ve 2014 de read-only yönlendirme trafiği yönlendirme listesindeki ilk uygun replika sunucusuna yönlendirilmekteydi. Eğer bu sunucuya erişilemez ise listedeki diğer sunucuya yönlendirilirdi. Eğer çok sayıda ikincil replika sunucunuz var ise okuma işlemlerini bu sunucular arasında yük dengeli olacak şekilde yönlendiremezsiniz.

SQL Server 2016 da sorgulamalar yük dengeli olarak sunuculara dağıtılabilmektedir.

Uygulanışı:

Yapılandırma için üç adet SQL Server 2016 sunucu kullanıyorum. Bu sunucular Windows Server 2016 üzerine kuruludur.

ORTACAG ismi ile açlışan bir AlwaysOn yapım mevcut. WINSRV01 primiary server, WINSRV02 ve 03 secondary server olarak görev yapmaktadır. Listener ismi olarak da “LST” yi kullanmaktayız.

 

SQL Server 2016 AlwaysOn Üç Nodlu Otomatik Failover

SQL Server 2012 ve 2014 sürümlerinde iki adet senkron çalışan ikincil (secondary) replika sunucusu oluşturulabilir. Bu sunuculardan bir adeti öncelikli (primary) replika sunucusu ile otomatik failover yapabilmektedir.

SQL Server 2016 AlwaysOn teknolojisinde yapılan geliştirme sayesinde öncelikli replika sunucusu ile artık iki adet ikincil replika sunucusu otomatik failover yapabilir. Yani önceki sürümlere göre bu sayı bir artmıştır.

 

Görüldüğü üzere otomatik failover yapabilen sunucu sayısı artık üçtür.

Aşağıdaki sorgu ile de sunucuların yapılandırılmasını ve durumunu görebiliriz.

select replica_server_name, availability_mode_desc,failover_mode_desc, database_id, synchronization_health_desc,synchronization_state_desc,* from sys.availability_replicas as AR inner join sys.dm_hadr_database_replica_states as DRS on DRS.replica_id = AR.replica_id

 

Birincil sunucu çalışmayı durduğunda otomatik failover konumundaki ikincil replika sunucusu devreye girecektir. Fakat artık iki adet otomatik failover konumunda ikincil sunucu var.

Hangi sunucunun birincil sunucu olarak çalışmaya devem edeceğine Windows Failover hizmeti karar verir.

AlwaysOn rolü üzerindeki ayarlarda tercih edilen sahiplik seçeneği mevcuttur.

Bu bölümde üç adet sunucu yer alır. İlk sıradaki birincil replika sunucumuzdur. Hemen altında yer alan ikinci sıradaki sunucu ise birincil sunucumuzun başına bir şey geldiği zaman ilk olarak devreye girecek olan sunucudur. Üçüncü sırada ise son ikincil replika sunucumuz vardır. Bu sunucu son olarak devreye girer yani ikinci sıradaki sunucuda çalışmaz hale gelir ise.

Bu yapılandırılma Windows Failover Cluster menüsü üzerinden değiştirilemez. AlwaysOn replika sunucularını kaldırıp tekrar ekleyerek sıra değiştirilebilir. Fakat bu yöntemde çalışan sistem için önerilmez.

SQL Server Sorguları İle Active Directory den Veri Çekme

Microsoft SQL Server’ın Linked Server özelliği ile Active Directory yapınıza bağlanabilir ve group, bilgisayar, kullanıcı gibi nesnelerin bilgilerini sorgular ile çekebilirsiniz.

Linked Server olarak active directory yapınıza bağlanmak için aşağıdaki sorguyu çalıştırın.

 

SQL Server Lock Aktivitelerinin Tespiti ve Analizi

SQL Server da tabloların kilitlenmesi yani lock konumuna geçmesi durumunda tablolar üzerinde işlem yapamaz hale gelirsiniz. Birçok sebepten olabilecek lock durumu sisteminizi sıkıntıya sokabilir.

Hangi veri tabanı içerisinde kilitlenme olmuş, kilitlenen tablo hangisidir ve hangi sorgu buna sebep olmuş gibi bilgiler sorunu çözmenizde faydalı olmaktadır. Bu bilgilere Management Studio içerisinden rahatlıkla ulaşabilirsiniz.

Öncelikle sorunu tespit edip analiz edebilmek için kilitlenmiş bir tabloya ihtiyacım var. Sadece test ortamında aşağıdaki sorguyu çalıştırıp veri tabanımız altındaki bir tabloyu kilitleyebilir ve belirtilen süre içerisinde de kilitli kalmasını sağlayabiliriz.