SQL Server Install

Microsoft SQL Server, Microsoft tarafından geliştirilen ve yönetilen bir ilişkisel veritabanı yönetim sistemidir. SQL Server, büyük ve karmaşık veritabanlarını depolamak, yönetmek, sorgulamak ve işlemek için kullanılan bir yazılım ürünüdür. Veri depolama, veri güvenliği, yedekleme, geri yükleme, veri entegrasyonu, analiz ve raporlama gibi çeşitli veritabanı yönetimi işlevlerini destekler.
SQL kurulum sonrası performans ve güvenlik sorunları yaşamamak için best practices’lere uygun yapılmalıdır. Kurulum yapılırken SQL kurulumu yapılacak disk, log ve temp diskleri bir birinden ayrılarak tasarlanmalıdır. Makalenin ilerleyen kısımlarında bunları gerçekleştireceğiz.
Kuruluma başlamadan önce sunucu üzerinde aşağıdaki ayarları gerçekleştiriniz.
- Sunucunun ip adresini sabit olarak ayarlayın.
- Klavye hariç diğer seçeneklerin English (United States) olarak ayarlayın.

- Tüm Windows güncelleştirmelerini yükleyin.
- Sunucu kapanmaması için, Windows işletim sistemi lisansını etkinleştirin.
- Windows Firewall üzerinde SQL Server portlarını açmak için aşağıdaki komutları powershell üzerinde çalıştırın.
New-NetFirewallRule -DisplayName "SQLServer default instance" -Direction Inbound -LocalPort 1433 -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "SQLServer Browser service" -Direction Inbound -LocalPort 1434 -Protocol UDP -Action Allow
Aşağıdaki linklerden SQL Server lisansınız varsa Microsoft Admin Center üzerinden veya public olarak yayınlan sitesinden indirebilirsiniz.
İndirdiğimiz iso dosyasını tıklayın ve açılan pencerede Setup dosyasını çalıştırın.

Açılan pencerede kurulumu daha iyi bir şekilde yapabilmek için Plannig bölümünü inceyebilirsiniz. Biz kurulum adımına geçeceğimiz için Installation kısmından New SQL Server stand-alone installation or add features to an existing installation seçeneğine tıklayalım.

Edition ekranın da Microsoft SQL Server kurulumu için gerekli olan lisans yapılandırmasını seçmemiz gerekiyor. Test işlemleri veya basit işleriniz için Evaluation, Developer ve Express seçeneklerinden birini kullanabilirsiniz.
- Evaluation: 180 günlük deneme sürümüdür.
- Developer: Geliştiricilere yönelik bir lisanslamadır. Geliştirme ve test ortamları için kullanılabilir.
- Express: Ücretsiz olan bir sürümdür ve basit ürünler için kullanılır. Database boyutu olarak en fazla 10GB kadar desteklemektedir.
Benim lisansım olduğu için, Enter the product key kısmında lisans bilginiz otomatik olarak geldi. Aşağıdaki seçeneklerden birini seçerek Next ile devam edelim.
- I have a SQL Server license with Software Assurance of SQL Software Subscription: Microsoft Abonelik modeli ile bir Microsoft SQL Server 2022 lisansı alındı ise bu seçenek ile devam ediniz.
- I have a SQL Server license only : Mevcut Microsoft SQL Server 2022 lisansınız ile bu seçeneği kullanarak devam ediniz.

- License Terms ekranın da Microsoft SQL Server 2022 kurulumu için lisans sözleşmesini kabul ederek devam ediniz.
- Global Rules ekranın da SQL Server kurulumuna başlamadan önce sistemimizdeki herhangi bir eksik ya da hata olup olmadığının kontrolü gerçekleştiriyor.
Microsoft Update ekranın SQL Server kurulumu için güncelleştirme olup olmadığını kontrol edebiliriz ya da herhangi bir güncelleştirmeyi kontrol etmeden Microsoft SQL Server 2022 kurulumuna devam edebiliriz. Use Microsoft Update to check for updates (recommended) seçeneğini işaretliyoruz ve Next diyerek devam ediyoruz.

- Install Setup Files ekranın da SQL Server kurulumu için gerekli güncelleme ve kurulum dosyaları hazırlanıyor.
- Install Rules ekranın da SQL Server kurulumu için gerekli olan yapılandırmada herhangi bir eksik olup olmadığını kontrol ediliyor.
Feature Selection ekranın da Microsoft SQL Server kurulumu için hangi servislerinin ve özelliklerinin kurulacağını yapılandırdığımız ekrandır. Microsoft SQL Server 2022 kurulumu için seçilmesi gereken önemli servis Database Engine Services servisidir. SCCM içinde Database Engine Services yeterli olacaktır.
- Microsoft SQL Server 2022 ile birlikte Management Tools ve Reporting Services artık Microsoft SQL Server kurulum ISO’su ya da kurulum dosyası içinde gelmemektedir.
- Microsoft SQL Server 2022 kurulumu sırasında seçilen servisler ve özellikler kullanılacak olan yazılım ve uygulamalar için farklılık gösterebilir.

Instance Configuration kısmından instance seçimi yapmamız gerekmektedir.
- Default Instance : Bu seçenek ile sunucu üzerinde sadece bir kez kurulabilir ve sunucu ismiyle direkt olarak erişim sağlanabilir.
- Named Instance : Bu seçenek ile server_hostname\Instancename ile erişime açıktır. Bu şekilde kurulum yapılırsa Microsoft SQL Browser servisinin açık olması gerekmektedir.
Sunucunuz üzerinde yüklü olan Microsoft SQL Server’ların her birisi Instance olarak isimlendirilir. Ortamınızda bulunan bir sunucu üzerine birden fazla Microsoft SQL Server Instance kurulumu yapabilirsiniz. Biz bir tane kullanacağımız için Default Instance kısmında varsayılan ID bırakarak devam ediyoruz.

Server Configuration → Service Accounts bölümünde SQL Server Agent, SQL Server Database Engine ve SQL Server Browser servislerinin hangi kullanıcı ile çalışacağını yapılandırabilirsiniz. Eğer ürüne özel bir kullanıcı gerekmiyorsa varsayılan olarak bırakarak windows kendi sistem hesaplarını kullanacaktır.

Collation kısmından Microsoft SQL Server üzerinde Character set anlamına gelmektedir. Örneğin, SCCM ürünü için “SQL_Latin1_General_CP1_CI_AS” seçili olmalıdır.
- Türkçe veritabanlarında kullanılan Turkish_CI_AS ya da SQL_Latin1_General_CP1254_CI_AS kullanılmaktadır.
- Collation Name deki CI ifadesi Case Insensitive (Büyük küçük harf ayrımı olmasın) anlamına gelmektedir.
- Microsoft SQL Server 2000 versiyonunda Collation Name olarak Turkish_CI_AS olarak yapılandırmaktaydı. Fakat Microsof SQL Server 2005 ve Microsof SQL 2008 versiyonları sonrasında daha çok SQL_Latin1_General_CP1254_CI_AS kullanılmaya başlandı.
- Microsoft SQL Server kurulumu sırasında Collation seçeneği kullanılacak olan yazılım ve uygulama için farkılılık gösterebilir.

Database Engine Configuraition kısmında kimlik doğrulama metodundan Mixed mode seçelim. Akabinde Add Current User butonuna bastıktan sonra Add kısmından istediğiniz kullanıcı veya grubu ekleyebilirsiniz.
- Windows authentication mode : Bu seçenek ile Microsoft SQL Server üzerinde sadece Windows Login’leri ile Microsoft SQL Server’a erişilebilir. Windows Authentication, Active Directory Domain ortamını etkin hale getirilmişse, en yüksek güvenlik seviyesi sağlayan Kerberos güvenlik protokolünü kullanır.
- Mixed Mode : Bu seçenek ile Microsoft SQL Server üzerinde hem Windows authentication hem de SQL Server authentication ile erişilebilirsiniz. Microsoft SQL Server kurulurken default olarak Windows authentication mode’da kurulur. Microsoft SQL Server’ınızı dilerseniz kurulum esnasın da Mixed Mode olarak yapılandırabilirsiniz.

Data Directories sekmesinde Microsoft SQL Server kurulacağı default olarak gelen dizinleri gözükmektedir. Bu alanları doğru belirlemek performans, güvenlik ve yönetim için kritik öneme sahiptir.
- Data root directory: Bu alan, varsayılan olarak SQL Server'ın veritabanı dosyalarının bulunduğu temel dizini belirtir. Özel bir dizin belirtilmezse, SQL Server'da oluşturduğunuz veritabanları ve veritabanlarının ana dosyaları (veri dosyaları), bu dizin altında depolanır. Bu dizin, SQL Server'ın veri dosyaları için varsayılan olarak kullanacağı ana dizindir. SQL Server'ı ilk kurduğunuzda, veritabanı dosyaları için varsayılan bir "Data root directory" belirlenir.
- User database directory: Bu alan, kullanıcıların oluşturduğu veritabanlarının veri dosyalarının depolandığı dizini belirtir. Kullanıcı veritabanları, sistem veritabanlarından (örneğin master, model, msdb) ayrılır ve kendi veri dosyalarına sahiptir. Veritabanı dosyaları bu dizine yerleştirilir. Örneğin, .mdf ve .ndf dosyaları, kullanıcı veritabanları için bu dizinde tutulur. Veritabanı oluşturulurken bu dizini seçmek mümkündür. Eğer özel bir dizin belirtilmezse, varsayılan Data root directory kullanılır.
- User database log directory: Bu alan, kullanıcı veritabanlarının günlük dosyalarının (transaction log files) depolandığı dizini belirtir. SQL Server, veritabanı üzerinde yapılan tüm işlemleri log dosyalarına kaydeder. Transaction log dosyaları genellikle .ldf uzantısına sahiptir ve bu dosyalar veri bütünlüğünü sağlamak, veri kurtarma işlemlerini yönetmek ve veritabanı işlemleri üzerinde yapılan tüm değişikliklerin kaydını tutmak için kullanılır. Veritabanı oluşturulurken, log dosyalarının konumunu belirleyebilirsiniz. Eğer belirtilmezse, bu dosyalar User database directory veya Data root directory altında saklanabilir.
- Backup directory: Bu alan, SQL Server yedekleme işlemlerinin kaydedileceği dizini belirtir. Veritabanı yedekleri, bu dizine kaydedilir. SQL Server'da, veritabanlarının tam, diferansiyel ve günlük yedeklemeleri yapılabilir. Yedeklemeler genellikle .bak uzantısına sahip olur ve belirli bir dizine kaydedilir. Yedekleme dosyasının konumunu belirlemek için bu alan kullanılır. Bu dizin, veritabanı yedeklerinin güvenli bir şekilde depolanması için uygun olmalıdır, çünkü yedekler veritabanı kurtarma işlemlerinin temel bileşenidir. Ek olarak disk performansı büyük öneme sahiptir. Aksi halde yedekten dönmeniz saatleri alabilir.
Sonuç olarak Data root directory dışında diğer alanları ayrı disklere ayırmanız doğru olacaktır. Kısıtlı imkanlarınız var ise yine farklı bir tek diskte klasör olarak bu alanları ayırabilirsiniz. Bizim yaptığımız işlemde sadece ürünün kurulum ve yönetim dosyaları Data root directory kalacaktır.

Database Engine Configuration ekranın da Data Directories sekmesinde gerekli yapılandırmayı tamamladıktan sonra TempDB sekmesine geçiyoruz.
TempDB, SQL Server'ın geçici veri depolama alanıdır ve bir sistem veritabanı olarak sınıflandırılır. TempDB, SQL Server'da yapılan çeşitli geçici işlemler için kullanılan bir alandır. Bu veritabanı, veritabanı işlemleri sırasında oluşan geçici nesneleri, geçici tabloları, indeksleri ve sorgu sonuçlarını depolamak için kullanılır. TempDB veritabanı bu nedenle çok yoğun geçici işlem kullanan SAP gibi uygulamaların kullanmış olduğu SQL Server Database üzerinde yüksek performans sağlayabilmek için TempDB Database yapısının çok iyi yapılandırılması gerekmektedir. Bu yüzden TempDB ayrı bir diskte imkan varsa SSD üzerinde olması performanslı olacaktır.
TempDB içeriği sürekli olarak değişir ve sistem her yeniden başlatıldığında sıfırlanır, yani geçici veriler kaybolur. Tempdb üzerinde backup ya da restore seçenekleri kullanılamaz. Performans için gerekli sayıda gerekli boyutta TempDB oluşturma imkanına sahibiz. Bu kısımda belirleyeceğiniz parametreler sizin yapınızdaki duruma göre değişebilir.
- Data directories kısmından varsayılan dizini değiştirmek için Remove ardından Add butonuna basarak oluşturduğumuz diski ekliyoruz.
- Log directory bölümünü bir önceki oluşturduğumuz log diskine temp için ayrı bir klasör oluşturarak aynı yeri kullanabilirsiniz.

TempDB sekmesinde gerekli yapılandırmayı tamamladıktan sonra MaxDOP sekmesine geçiyoruz. MAXDOP (Maximum Degree of Parallelism), SQL Server'da paralel işlem yapma yeteneğini kontrol eden bir konfigürasyon parametresidir. SQL Server, paralel sorgu yürütme sırasında işlemleri birden çok işlemciye veya çekirdeğe dağıtarak sorguların daha hızlı çalışmasını sağlar. MAXDOP parametresi, bir sorgunun en fazla kaç işlemci çekirdeği kullanarak paralel çalışabileceğini belirler.
MAXDOP Parametresinin Ayarları:
- 0 değeri verilirse, sistemde bulunan işlemci sayısına göre otomatik olarak paralel işleme karar verir.
- 1 değeri verilirse, paralel işlem yapılmaz ve her sorgu tek bir işlemci çekirdeği ile çalışır.
- 2 veya daha yüksek bir değeri verilirse, sorguyu belirtilen sayıda işlemci çekirdeği kullanarak paralel işler.
Bu ayar, özellikle karmaşık sorguların verimli bir şekilde çalışmasını sağlar. Ancak, MAXDOP değeri çok yüksek ayarlandığında, sistemin performansı olumsuz yönde etkilenebilir.
Varsayılan olarak sisteminizde kaç çekirdek var ise o kadar kendisini ayarlayacaktır.

MaxDOP sekmesinde gerekli yapılandırmayı tamamladıktan sonra Memory sekmesine geçiyoruz. SQL Server genelde işletim sisteminin memory aşırı şekilde kullanmaktadır. Eğer limitlenmez ise sorunlar kaçınılmaz olacaktır. Limitleme işlemini SQL Server 2019 öncesi SSMS üzerinde yapılmaktaydı. Ekstra olarak SQL Server 2019 ve sonrasında artık bu kısımdan gerçekleştirilebilir. Örneğin, SCCM için mevcut memory miktarının max kullanımının %80 olarak sınırlandırılması önerilir.

SQL Server FileStream, SQL Server'ın büyük verileri (resimler, video dosyaları, ses dosyaları gibi) veritabanında depolamak yerine, dosya sistemi üzerinde depolamasına olanak tanıyan bir özelliktir. FileStream, SQL Server'da büyük dosyaların yönetimi ve depolanması için ideal bir çözümdür. Dosya sistemi ile veritabanını entegre eden bu özellik, büyük dosyaların veritabanı içinde uygun bir şekilde saklanmasına ve erişilmesine olanak tanır.
FileStream'i kullanmadan önce sistem gereksinimlerini ve veri yönetim ihtiyaçlarını dikkatlice değerlendirmek önemlidir.

Bu işlemden sonra next seçenekleri ile kurulumu tamamlıyoruz. Kurulum bittikten sonra, SQL Server yönetmek için SSMS son sürümünü indirerek next seçenekleri ile kurulumları tamamlayabilirsiniz.
Kurulum sonrası SSMS çalıştırın ve Trust server certificate seçeneğini işaretleyerek Connect butonuna basınız.

Artık veritabanını kolay bir şekilde yönetebilirsiniz.

Kurulum sonrası son yayınlanan SQL CU versiyonlarını yükleyiniz.
SQL Server Rapor servisi ihtiyacınız olursa SSRS 2022 sürümünü indirerek next seçenekleri ile kurulumları tamamlayabilirsiniz.