Bir önceki makalemizde 3. Aşamayı yaptıktan sonra şimdi gelelim dördüncü aşamaya. Sizde sıfırdan HyperV-Windows Server-Active Directory-Failover Cluster-AlwaysOn kurulumu yapmak isterseniz adımları takip edebilirsiniz.
4. AŞAMA
Sql server always on yapısının kurulması için sql server enterprice sürümünün olması gerekmektedir. Bunun için microsoft veya başka bir siteden bu sürümü indirebilir deneme sürümü olarak kullanabilirsiniz. Ben Sql Server 2017 Enterprice sürümünü kullanacağım.
SQL Server, verilerimizi yönetilmesini ve erişilmesi sürecini yöneten ilişkisel veritabanı yönetim sistemidir.(RDBMS)
Microsoft’un sayfasından sql server’ı indirebilirsiniz.
https://www.microsoft.com/en-us/sql-server/sql-server-downloads

Yukarıdaki resimde indirmiş olduğumuz .exe uzantısını çalıştırdığımızda böyle bir ekran karşımıza çıkmaktadır.

Basic: Hızlı bir kurulum gerçekleştirmek isterseniz Basic ile ilerleyebilirsiniz. Sizden minimum düzeyde bilgileri isteyip kurulumu tamamlayacaktır.
Custom: İndireceğimiz dosya yolunu belirledikten sonra kurulumun her bir adımı için konfigurasyonu belirliyoruz. Kurulumuna makine üzerinde hemen başlıyoruz.
Download Media: Sadece SQL Server kurulum dosyasının indirilmesini belirtir. ISO dosyası indirilir. İlgili sunucu üzerinde kurulum yapmayacağımız zaman indirilmesi gerekmektedir.
Benim elimde Download Media modunda olan sql server klasörü olduğu için ilgili S1 ve S2 windows sunucularına Sql Server 2017 Enterprice sürümünü kopyalıyorum. Ben S1 ve S2 sunucularına yükleme işlemini aynı anda yapacağım ama sadece bir sunucunun ekran görüntülerini alıp neler yapılması gerektiğini belirteceğim. Siz diğer sunucuda aynı adımları koordineli bir şekilde yapabilirsiniz.
S1 ve S2 sunucularında aynı anda kurulum işlemlerine başlıyorum.
Sunucumun içerisine kopyalamış olduğum sql server’ı açıyorum setup dosyasına sağ tıklayıp yönetici olarak çalıştırıyorum.

Aynı işlemleri S2 sunucusundada koordineli bir şekilde yapıyorum. Daha sonra önümüze gelen ekranda installation bölümünde New SQL Server stand-alone installation or add features to an existing installation kısmına tıklıyorum. Tek bir sunucu üzerinde instance kuracağımız için seçiyoruz.

Aşağıdaki ekranda ekranda specifiy a free edition veya elimizde herhangi bir lisans varsa enter the product key bölümünü seçiyoruz. İlk başta resimdeki bölümlerin ne işe yaradıklarına değinelim.

Evulation: 180 gün boyunca tüm özellikleri kullanacağımız bir yapı olarak karşımıza çıkmaktadır.
Express: SQL Server’ın kısıtlı sürümünü kurmanızı sağlar. Database boyutu olarak en fazla 10 Gibabyte’a kadar desteklemektedir.
Developer:Geliştirme ve öğrenme süreçleriniz için ücretsiz sunulan Enterprise versiyonu özelliklerini taşıyan sürümdür. Sürekli kullanacağımız bir sürüm.
Benim elimde bir lisans anahtarı olduğu için enter the product key bölümünü seçip next deyiyorum.

Gelen ekranda I accept the license terms diyiyoruz ve next deyip bir sonraki adıma geçiyorum.

Bir sonraki ekranda Use Microsoft Update to check for updates seçeneğini seçmeyip next deyip ilerliyorum. Güvenlik ve diğer kapsamlarda yer alan güncellemelerin kontrolünü gerçekleştirerek kurulum sürecine dahil edilmesini istiyorsak bu adımı onaylamamız gerekiyor. Kurulum sırasında herhangi bir güncelleştirme varsa bunlarında güncelleştirilmesini istermisiniz seçeneğini seçmeyip ilerliyorum.

Aşağıdaki ekranda herhangi bir değişiklik yapmayıp Next deyip ilerliyorum.

Gelen ekranda kurulum için başlangıç adımlarının doğru yapılıp yapılmadığına dair özet bir ekran geliyor. Uyarı verilen veya çarpı işareti gördüğümüz yerler için özel önlem alıp düzenleme yapabiliriz bende herhangi bir sorunla karşılaşmadığım için Next deyip ilerliyorum.

Asıl bizim için önemli olan sql server yapısının şekillendiği aşağıdaki bölümde ihtiyaçlarınıza göre seçim yapmak gereksiz olan sunucularınızda kullanmayacağınız özelliklerin seçilmemesi gerekmektedir.
Burada karşımıza instance features kısmı ve shared features kısmı gelmekte.
İnstance features kuracağımız her instance için teker teker ayarlamalarımız yaptığımız kısım ama shared features kısmı ise her instance’da ortak bulunmasını istediğimiz alan bu tamamen sizin sistemdeki ihtiyaçlarınıza göre şekillendirmeniz gereken bir yer.
Herhangi bir instance features kısmında herhangi bir özelliğe tıkladığımızda sağ üst tarafta açıklaması gözüküyor.
Her bir özelliğin ne iş yaptığını aşağıda öğrenebilirsiniz. Veritabani.gen.tr’den alınmıştır.
Database Engine Services: SQL Server kurulumun kendisidir. Seçmeden veritabanı oluşturamazsınız.
SQL Server Replication: Replication yapma ihtiyacınız varsa bu seçeneği seçebilirsiniz.
Full-Text and Semantic Ex: Eğer veritabanlarınızda Full Text Search özelliğini kullanacaksınız bu seçeneğide seçmelisiniz.
Data Quality Services: Hatalı, tekrar eden detayı temizlemek için kullanılır. Örneğin IST ve İstanbul olarak aynı kolona girilen değerlerin aynı değeri ifade etmesine rağmen istatistiklerde farklı gözükmesini engellemek için.
Data Quality Client: Data Quality Service’de belirttiğimiz temizleme işlemini yapabilmek için gerekli client uygulamasıdır.
Analysis Service: OLAP (Online Analytical Processing) tipi sistemler için gereklidir.
Reporting Service: Rapor Hazırlamak için kullanılan bir tool’dur.
Client Tools Connectivity: Client’lar ve SQL Server arasındaki iletişim için kullanılır. Aşağıdaki bileşenleri içerir ve seçilmesi gereklidir.
OLEDB for OLAP, ODBC, ADODB, and ADOMD+
Integration Service: Datayı kopyalamak, taşımak ve dönüştürmek için kullanılır
Client Tools Backwards Compatibility: SQL Distributed Management Objects (SQL-DMO) ve Decision Support Objects (DSO)’ü içerir. Bu özellikler SQL Server ve Analysis Services objelerini yönetmek için kullanılır.
Client Tools SDK: Yazılımcılar için yazılım geliştirme kiti içerir. Örneğin bu kurulumla gelen bazı class’lar web servisler içinde bir SSIS package çalıştırmak için kullanılabilir.
Documentation Components. Books Online’ı lokal olarak yüklemek isterseniz bu seçeneği seçmelisiniz
Management Tools Basic-Complete: SQL Server’a bağlanmak için kullandığımı en temel araç olan SQL Server Managemet Studio kurulumu için bu seçenekleri seçmelisiniz. Basic seçerseniz SQL Sever Profiler, Database Engine Tuning Advisor, SQL Server Utility management kullanamazsınız. Bu özellikleri kullanmaya ihtiyacınız varsa Complete’i de seçmelisiniz.
Distributed Replay Controller: SQL Server upgrade yapacaksanız ve upgrade testlerini uygulamadan gelen gerçek isteklerle ve aynı yoğunlukta yapmak istiyorsanız bu seçeneği seçmelisiniz.
Distributed Replay Client: SQL Server upgrade yapacaksanız ve upgrade testlerini uygulamadan gelen gerçek isteklerle ve aynı yoğunlukta yapmak istiyorsanız bu seçeneği seçmelisiniz.
SQL Client Connectivity SDK: Veritabanı uygulaması geliştirmek için SQL Server Native Client (ODBC/OLE DB) içerir.
Master Data Service: İşletmelerde heterojen yapıda tutulan verilerin tek bir merkezden yönetilmesi için gereklidir.
Ben sadece sql server kurulumu yapacağım için sadece Database Engine Services bölümünü seçerek ilerliyorum daha sonra herhangi bir özelliğe ihtiyacımız olduğu zaman ekleme imkanı bize sunuyor sql server. Başka bir makalede bu konuya değinmiş olacağız.

İnstance root directory sql kurulumunun yapılacağı disk yer alıyor. Hız açısından Sql Server’ın C diski altında kurulması tavsiye edilir. Gerçek sistemde C diski altında bırakılır.
Next deyip bir sonraki ekran geçtiğimizde önümüze instance ‘ın default instance adımı yoksa bizim belirlediğimiz özel bir instance adımı olması gerektiğini söylüyor biz burada named instance seçeneğini seçerek işlemlerimizi yapacağız. Named instance seçtiğimizde sql server’ın browser servisi önem kazanır. Kullanıcı connection string’inde herhangi bir port belirtmemişse kullanıcının hangi named instance’a gitmesi gerektiğini browser servisi karar verir. Bununla ilgili makale önceki yazılarımda mevcut.

Default olarak yukarıda görmüş olduğumuz şekilde bir sql server’da sadece bir tane default instance vardır. Default instance olarak ayarlanırsa kullanıcılar sql server’a bağlanırsa sadece sunucu adını girmeleri yeterlidir. Ben named instance seçeneğini aktif ederek ismini TEST olarak belirliyorum. Next deyip bir sonraki adıma geçiyorum. S2 sunucumdada aynı isimle instance oluşturuyorum AlwaysOn için instance isimlerinin aynı olması şart. Not olarak bir sunucuda birden fazla named instance oluşturulabilir.

Aşağıdaki ekranda sql server servislerini görmekteyiz. Bunların ne işe yaradığını açıklayalım.

SQL Server Agent ve SQL Server Database Engine servislerinin sql server için güvenli bir şekilde çalışması için account name’lerinin active directory tarafında oluşturulan bir user olarak belirlenmesini bu user’ın sadece sql server servisleri için atanması gerekmektedir. Zaten AlwaysOn oluşturacağımız zaman iki sunucunun sql server hesapları aynı kullanıcı değilse hata mesajıyla karşılaşılmaktadır. AlwaysOn veya failover cluster gibi high availability seçeneklerini kullanacaksak yapının bu şekilde olması Microsoft tarafından önerilen yöntemdir. High availability seçeneklerini kullanmayıp sadece localde tek bir sunucu kurulum yapacaksanız bu servis yapıları önemsenmeden Next denilip bir sonraki aşamaya geçilebilir.
Bunun için şimdi active directory sunucumuzda bir kullanıcı oluşturalım. AD sunucuma giriyorum. Windows arama kısmına active directory users and Computers yazıyorum işaretlenmiş kısma tıklıyorum.

Gelen ekranda yunusyucel.com aktif dizinime tıklıyorum Users>New>User sekmelerine tıklıyorum.

Gelen ekranda kullanıcımı oluşturuyorum ve next diyiyorum.

Kullanıcı şifresini belirledikten sonra next deyip bir sonraki adıma geçiyorum. Normalde sql agent ve database engine için farklı user’lar oluşturulması tavsiye edilir ama ben bir user oluşturuyorum.

Yukarıdaki kavramların ne olduğunu açıklayalım.
- User must change password at next logon: Bu seçenek işaretlendiğinde, kullanıcı bir sonraki oturum açışında parolasını değiştirmek zorundadır.
- User cannot change password: Bu seçenek işaretlendiğinde, kullanıcı kendi parolasını değiştiremez.
- Password never expires: Bu seçenek işaretlendiğinde, kullanıcının parolası süresiz olarak geçerli kalır ve süresi dolmaz.
- Account is disabled: Bu seçenek işaretlendiğinde, kullanıcı hesabı devre dışı bırakılır ve kullanıcı oturum açamaz.
Finish deyip işlemimi sonlandırıyorum.

Artık ServisHesap user’ımı oluşturdum. Şimdi tekrar sql server kurulumu yaptığım sununuculara gidip bu kullanıcı adı ve şifresini tanımlamakta. Bu user sadece sql server servisleri için var. Başka bir iş için kullanılmaz.
Kurulum ekranına gelip Browse tıkladıktan sonra active directory’de oluşturduğumuz kullanıcımızı bulabiliriz.

Locations’dan active dizin’i seçtikten sonra oluşturmuş olduğumuz servis ismini yazıp Check Names kısmına tıklıyorum.

Check Names’e tıkladıktan sonra bizden active directory’in kullanıcısının kullanıcı adı ve şifresini istiyor. Bunları girdikten sonra kullanıcımız gelmiş oldu.

Aynı işlemleri sql server database engine içinde yapıyorum.

Bu işlemlerin aynısını ikinci sunucuda da yapıyorum. Yukarıdaki password kısmı active directory’de oluşturduğum kullanıcının şifresi.
Not: Grant Perform Maintenance Task Privileges.. bölümü SQL Server’ın kurulum sürecinde belirli bir kullanıcıya veya gruba, bakım görevlerini gerçekleştirme yetkisi verme işlemidir. Bu seçeneğin amacı, bakım görevleri için gerekli olan izinleri vermek ve veritabanı yöneticilerinin (DBA) ya da başka bir kullanıcının SQL Server üzerinde belirli bakım işlemleri yapabilmesini sağlamaktır.
Bu işlemlerden sonra Services Accounts’ın yanından bulunan Collation kısmına geliyoruz bu yapı sql server’ın hangi dil yapısına göre sıralanacağını belirtiyoruz.

Bu bölüme girdikten sonra Customize bölümünden hangi dil yapısını seçmek ve ne gibi ayarlamaların olmasını istersek onu seçebiliriz. Kuracağımız sql server için default dil seçeneğidir.

Bu işlemlerden sonra next deyip bir sonraki aşamaya geçiyorum. Aynı işlemleri ikinci sunucum içinde yapıyorum.

Bir sonraki ekranda Server Configuration, Data Directories, TempDB ve FILESTREAM bölümlerini görmekteyiz.
Bu bölümlerin ne işe yaradığını ne gibi konfigürasyonları yapmamız gerektiğini açıklayarak gidelim.

Hem Windows Authentication modda hem de sql Authentication modunda girmesini istiyorsak mixed modu seçmemiz gerekiyor. Ben kuracağım sql server Windows Authentication modundan hemen bağlanmak için S1 sunucumun şifresini girerek sql server map ediyorum. Mixed modda belirlediğimiz şifre kurulacak instance’daki sa şifresi. Bunu yapmazsak sql server’a SSMS üzerinden giriş yapamayız. Bu ekranda add current user bölümünde active directory’deki oluşturduğumuz bir kullanıcıyı veya S1 sunucusunda oluşturduğumuz local bir kullanıcıyı da Windows modunda girmesi için ekleyebiliriz. Windows auth.. ile hemen bağlantı sağlamak için administrator kullanıcımız ekleniyor.

Kullanıcımızı ekledikten sonra şimdi ise Data Directories kısmına geçebiliriz. Bu ekranda system dosyalarının nerde oluşturulması gerektiğini ve herhangi bir database oluşturacağımız zaman mdf ldf ve backup’ların default olarak nereye alınacağını belirleyebiliriz. Büyük sistemlerde bu yapı veritabanları restore edileceği veya backup alınacağı zaman elle farklı disk yolları belirtilebilir. Ben herhangi bir değişiklik yapmadan next deyip ilerliyorum. Kısaca açıklayalım.
Data Root Directory: SQL Server’ın kurulacağı path. Default olarak Windows işletim sisteminin C’de olduğunda C’de olması tavsiye edilir. Ama master-model-msdb veritabanlarımızın C diskinde olması sıkıntı sebebiyet vereceği için başka bir disk altında oluşturulmasıda tavsiye edilmektedir. Önceki ekran resimlerinde instance features yapısının C diski altında olması tavsiye edilir. Ama sistem veritabanlarının C altında olması sıkıntıya sebebiyet vermektedir.
User database directory: Veritabanlarınızın mdf uzantılı data dosyalarını ilk oluşturulma esnasında default olarak nerede oluşturulacağı path’in bilgisini içeriyor.
User database log directory: Veritabanlarınızın ldf uzantılı log dosyalarını ilk oluşturulma esnasında default olarak nerede oluşturulacağı path’in bilgisini içeriyor.
Backup directory: Veritabanı backup’ı almak istediğinizde default olarak çıkacak path bilgisi
Performans açısından bu disk’lerin farklı disk yollarından seçilmesi tavsiye edilmektedir.

Bir sonraki kısım olan TempDB bölümüne geçiyoruz.
Temp DB directory: Tempdb’nin data dosyalarının nerede tutulacağını belirten path bilgisi
Temp DB log directory: Tempdb’nin log dosyalarının nerede tutulacağını belirten path bilgisi
Tempdb disklerinin ayrı bir disk yolunda olunması tavsiye edilir. Büyük sistemlerde bu yapıda oluşturulması gerekmektedir.
Tempdb log ve data dosyalarının başlangıç size değerlerini autogrowth değerini ve file sayısını belirleyebiliriz. Büyük sistemlerde dosya sayısının 8 veya 16 olması tavsiye edilir. Bu aslında contention’ın önüne geçmiş olur. Tempdb de bir contention yaşanıyorsa tempdb file sayısını arttırmak bir çözümdür. Tempdb dosyasının initial size değeri 1024 MB auto growth değeri 1024 MB olarak ayarlanabilir.

FILESTREAM tabında herhangi bir işlem yapmayıp next deyip bir sonraki adıma geçiyoruz.
Bu işlev Varbinary (max) sütununda FILESTREAM özniteliğini belirtmek SQL Server, verileri veritabanı dosyası yerine yerel NTFS dosya sisteminde depolamasına neden olur. Ayrı olarak depolansa da, veritabanında depolanan varbinary (max) verileriyle çalışma için desteklenen aynı Transact-SQL deyimlerini kullanabilirsiniz.

Özet ekranı görüp inceledikten sonra install deyip kurulum işlemlerime başlıyorum.

Kurulum işlemim başladı bitmesini bekliyorum.

Kurulumum bittikten sonra sql server’ımın başarılı bir şekilde kurulduğunu görmüş oldum.

Sql server congifuration manager bölümünden sql server’ın kurulduğunu görmüş oluyoruz.

Ayrıca sunucumuzda services bölümünden servisleri görebiliriz.

Kurulum işlemini bitirdikten sonra Sql Server’a bağlanabilmem için SSMS arayüzünü kuruyorum. Bu arayüz microsoft’un sayfasındada indirilebilir ya da sql server’ı kuracağımız zaman installation ekranından da indirilebilir. Install SQL Server Management Tools bölümü bizi microsoft’un sayfasına yönlendirir.

Microsoft’un sayfasından indirim işlemlerini yaptıktan sonra SSMS kurulumuna geçiyorum. Install deyip kurulumuma başlıyorum.

Kurulum biraz uzun sürmekte.

SSMS kurulumu tamamlandı şimdi SSMS’den sql server’a bağlanalım.

Sql server kurulumunda S1\administrator’ı Windows login olarak eklediğimiz için onunla giriş yapabiliriz.

S2 sunucusunda da başarılı bir şekilde bağlanmış olduk. Koordineli bir şekilde yaptığımı en başta söylemiştim.

Şimdi sunucularımın arasında SSMS’den diğer sunucuya bağlantı sağlaya biliyormuyum onu test edelim.
S1 sunucusundaki SSMS’den S2 sql server’a bağlanmaya çalışalım bağlanma sağlanacak mı.

Connect dedikten sonra bağlantının gerçekleştiğini görmüş oluyoruz.

Şimdi bir özet olarak S1 ve S2 sunucularımda sql server kurulumunu gerçekleştirdim. Uzun yazımızın son kısmı olan AlwaysOn kurulumunu yapalım. Bir sonraki Makalede AlwaysOn kurulumunu görmüş olacağız.
Bu yazıyı okuduktan sonra şimdi Sıfırdan HyperV-Windows Server-Active Directory-Failover Cluster-AlwaysOn Kurulumu-5 makalesini okumalısınız.
“Doğru yola göstermek elbette bizim işimizdir.”Leyl-12
2 thoughts on “Sıfırdan HyperV-Windows Server-Active Directory-Failover Cluster-MSSQL Server-AlwaysOn Kurulumu-4”