SQL Server

Windows Server Core Üzerinde Microsoft SQL Server Cluster Kurulumu – Guest Microsoft SQL Clustering on Windows Server Core

Bu makalemizde kritik hizmetlerimiz arasında yer alan Microsoft Veri tabanı servisi Microsoft SQL Server ’ın is sürekliliğinin sağlanmasını için Daha az kaynak kullanan Windows Server 2016 Core sürüm 2 sunucu üzerinde Microsoft SQL Server 2016’nın nasıl Cluster olarak kurulacağından bahsedeceğim.

Bir sonraki makalemizde ise bu yapıya ek bir 1 Standalone SQL Server kurup Always On yapılmasını anlatacağım. Anlatımı daha kolay kılmak için bu yapıda kullanacağım topoloji çizimini aşağıdaki gibidir.

clip_image002

Daha önceden portalımızda Server Core üzerine nasıl Hyper-V Cluster kurulumunun ve yönetimini bahsetmiştim. Aşağıdaki linkten detaylarına ulaşabilirsiniz.

http://www.cozumpark.com/blogs/virtualization/archive/2017/07/16/server-core-uzerinde-hyper-v-cluster-kurulumu.aspx

Bu makalemiz 3 ana bölüm ve 7 alt bölümden oluşmaktadır. Birinci bölümde SQL Cluster için yapılması gereken hazırlıklar, ikinci bölümde Microsoft SQL Cluster’a dahil olacak Server Core sunucuların hazırlanması ve Üçüncü bölümde ise Microsoft SQL Server ‘ın nasıl Server Core sunucu üzerine kurulacağı ve yönetileceğinden bahsedilecektir.

Birinci Bölüm: Gereksinimler ve Hazırlık:

Kuruluma Geçmeden önce aşağıda listelenen gereksinimlerin temin edilmesi gerekmektedir.

1-) Servis Hesaplarının Oluşturulması:

En az bir tane Active Directory kullanıcısına ihtiyaç bulunmaktadır. Ama önerim SQL Agent için ayrı SQL Cluster için ayrı Active Directory servis hesabının oluşturulması gerekmektedir.

Önerilen Servis Hesapları için ayrı bir OU açmanız ve bu kullanıcıları buraya taşıdıktan sonra GPO ile aşağıdaki yetkilendirmeyi yapın.

Eğer servis hesaplarının şifre değişikliğini yöneten bir uygulamanız veya alt yapınız yoksa kullanıcı oluştururken Şifre değişikliği kapatın.

Bir şekilde kullanıcı bilgileri ele geçirilip sunucu üzerinde riskli işlemlerin yapılmaması için aşağıdaki GPO ile RDP erişim iznini kapatın.

Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment\Deny Logon locally

2-) Planlama:

SQL Server Cluster kurulumuna geçmeden önce muhakkak güzel bir planlamanın yapılması gerekmektedir. Cluster Node’larının ismi ve ip adresleri, DTC Cluster ismi ve ip adresi, Failover Cluster ismi ve ip adresi, SQL Cluster ismi ve ip adresi, eğer AlwaysOn yapılandırılacaksa listener ismi ve ip adresi belirlenmeli.

Belirleme işlemi tamamlandıktan sonra bu isimler Active Directory üzerinde Computer objesi olarak oluşturulup disable edilmeli. Eğer disable edilmez ise bu hesap zaten var deyip Cluster kurulumunda hata verir.

Önerim; Cluster objelerini ayrı bir OU içinde toplayıp yukarıdan policy almasını engelleyin. Cluster Node’larını ise ayrı bir OU altında toplamanız.

Detaylı anlatım daha önceden portalımızda yayınladığım aşağıda linkini paylaştığım makaleden ulaşabilirsiniz.

http://www.cozumpark.com/blogs/windows_server/archive/2014/12/28/windows-server-2012-r2-cluster-ortamlarinin-hazirlanmasi.aspx

3-) Shared Diskin Hazırlanması

En az 2 tavsiye edilen 7 shared diskin oluşturulması. Bunlar;

Quorum: Önerim 1 GB’dan fazla olmayan en az 150 MB’lık disk olmalı. Bu konuda gerekli bilgiye aşağıdaki linkini verdiğim makalemden ulaşabilirsiniz.

http://www.cozumpark.com/blogs/windows_server/archive/2014/03/02/microsoft-cluster-mimarisinde-quorum-yapilandirmasi-ve-split-brain-senaryosu.aspx

DTC: SQL üzerinden transection ve verilerin olası bir kesintide problem oluşturmaması için SQL Server kurulumlarında DTC servisinin kullanılması tavsiye edilir. Eğer DTC servisini kullanacaksanız Cluster yapmanız gerekmektedir.

Bu işlem için Failover Cluster Manager Tools üzerinde Cluster kurulumu sonrasında role ekleyerek yapılabilir.

Master: SQL’in kurulum dosyalarının ve olası bir problemde oluşan SQL Memory Dump dosyalarının bulunacağı dizin. En az 100 en fazla 400 GB’lık olması önerilir.

Data: Verilerinizin tutulacağı disktir. Önerilen disk eğer sanal disk ise “FIX Size” olması ve eğer veri boyutunuz fazla ise ReFS olarak formatlamanızdır. Eğer 2 TB’dan büyük veri boyutunuz varsa ve veri tabanları bölüne biliyorsa önerilen 2 şer TB’lık disklerde tutmanız.

Log: Maksimum 400 GB’lık disk yeterli. Eğer sanal disk yapıyorsanız “Dynamic Size” yapılabilir.

Temp: MSSQL’in hızını belirlemede çok büyük öneme sahiptir. Bu nedenle eğer sanal disk yapacaksanız “Fix Size” yapmanız önerilir.

SQL 2012 ile birlikte Temp diski olarak local Flash (SSD) Disklerde tutulabilir özellik geldi. SQL 2016 ile birlikte ise Temp File’ın 8’e kadar şekilde parçalanarak oluşturulması özelliği geldi.

Backup: Hızlı olması adına Transection Log Backup’ları sunucu üzerinde tutabilirsiniz. Eğer kısa sürelerde yedek alıyorsanız ve sanal disk oluşturacaksanız “Fix Size” seçmeniz önerilir.

Aşağıda verdiğim linkte Hyper-V üzerinde sanal Shared Diskin nasıl oluşturulacağı anlatılmaktadır.

http://www.cozumpark.com/blogs/windows_server/archive/2017/08/27/server-2016-cluster-virtual-shared-disk-ve-guest-clustering.aspx

İkinci Bölüm: Server Core Cluster Node Kurulumu

SQL Server ‘ın Cluster yapılması için Public ve Private olmak üzere 2 network portuna ihtiyaç bulunmaktadır. Eğer ikiden fazla portunuz varsa Private haricindekileri Teaming yaparak Public olarak yapılandırabilirsiniz.

Daha önceden yazdığım ve portalımızda yayınlanan Windows Server 2016 Core Hyper-V Cluster makalesinde Nasıl Server Core sunucu kurulacağı, Network ayarlarının nasıl yapılacağı, Failover Cluster için Sunucu ince ayarlarının neler olduğu? Ve Cluster Kurulum adımları anlatıldığından tekrarlamak için burada yazmıyorum. Bu bilgilere aşağıda verdiğim linkten ulaşabilirsiniz.

http://www.cozumpark.com/blogs/virtualization/archive/2017/07/16/server-core-uzerinde-hyper-v-cluster-kurulumu.aspx

SQL Cluster Node olacak Sunucularda .Net 3 ve Failover Cluster feature’larının kurulumunun yapılması gerekmektedir. Feature kurulumuna geçmeden önceden Windows Server 2016 iso dosyasını sunuculara takıp aşağıdaki PowerShell komutunu çalıştırınız.

Install-WindowsFeature Net-Framework-Core -source D:\sources\sxs

Install-WindowsFeature -Name Failover-Clustering –IncludeManagementTools

Gerekli rol ve bileşenlerin kurulum tamamlandığında sconfig’i çalıştırıp full Windows Update yapmanızı öneririm.

Microsoft SQL Server kurulumuna geçmeden oluşturmuş olduğumuz SQL Agent ve SQL Servis hesaplarını sunucunun Local Administrator gurubuna ekleyiniz. Kurulum tamamlandığında isterseniz aşağıdaki linkte ayarlandığı gibi servis hesaplarını yetkilendirebilirsiniz.

https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-windows-service-accounts-and-permissions

Üçüncü Bölüm: SQL Server Cluster Kurulumu

Windows Server Core kısıtlı GUI alanına sahip sürüm olduğundan SQL Server kurulumunda bize sorulanları aşağıda örnek vereceğim şekilde önceden oluşturacağımız konfigürasyon dosyasıyla kurulum yapmamız gerekmektedir.

Bu adıma geçmeden önce GUI ekranlı bir sunucu üzerinden Failover Cluster Manager Tools açıp Network ve Disk menüleri altındaki Resource’leri büyük harflerle isimlendirin. Disklere uygun harf atamasını yapıp not edin. Kurulum dosyasını hazırlarken ihtiyacınız olacak

1-) Configuration File oluşturulması

Aşağıdaki örnek olarak verdiğim bilgileri uzantısı ini olan bir text dokümanı açıp kaydettikten sonra kendi yapınıza uygun şekilde değiştiriniz.

;SQL Server 2016 Configuration File

[OPTIONS]

;Eger standalone kuracaksaniz Action alanina Install yazın.

ACTION=”InstallFailoverCluster”

 

SUPPRESSPRIVACYSTATEMENTNOTICE=”False”

IACCEPTROPENLICENSETERMS=”True”

 

; Eger SQL kurulum diliniz Ingilizce den farkli ise ENU parametresine False deyin

ENU=”True”

QUIET=”False”

QUIETSIMPLE=”True”

UpdateEnabled=”True”

USEMICROSOFTUPDATE=”True”

UpdateSource=”MU”

 

;Features alani kurulumu yapılacak SQL rollerini belirtir.

;Server Core sürüm üzerinde sadece belli SQL rolleri desteklenmektedir

FEATURES=SQLENGINE,FULLTEXT

HELP=”False”

INDICATEPROGRESS=”False”

X86=”False”

 

;Eger ayni cluster içinde birden fazla SQL Cluster Instance olusturacaksaniz asagidaki değerleri degistirin

INSTANCENAME=”MSSQLSERVER”

INSTALLSHAREDDIR=”C:\Program Files\Microsoft SQL Server”

INSTALLSHAREDWOWDIR=”C:\Program Files (x86)\Microsoft SQL Server”

INSTANCEID=”MSSQLSERVER”

INSTANCEDIR=”C:\Program Files\Microsoft SQL Server”

 

; Level to enable FILESTREAM feature at (0, 1, 2 or 3).

FILESTREAMLEVEL=”0″

 

; Agent account name

AGTSVCACCOUNT=”domain\sqlagent.servis”

AGTSVCPASSWORD=”sifre”

; Account for SQL Server service: Domain\User or system account.

SQLSVCACCOUNT=”domain\sql.servis”

SQLSVCPASSWORD=”sifre”

 

;SQL Security Mode MIX Modu ifade eder

SECURITYMODE=”SQL”

;SA sifresi

SAPWD=”sifre”

; SQL Admin hesabı

SQLSYSADMINACCOUNTS=”domain\LocalAdmin”

 

; Set to “True” to enable instant file initialization for SQL Server service. If enabled, Setup will grant Perform Volume Maintenance Task privilege to the Database Engine Service SID. This may lead to information disclosure as it could allow deleted content to be accessed by an unauthorized principal.

 

SQLSVCINSTANTFILEINIT=”False”

; Add description of input argument FTSVCACCOUNT

 

 

FAILOVERCLUSTERIPADDRESSES=”IPv4;192.168.18.55;Public;255.255.255.0″

 

;NETWORKNAME SQL hizmetini verecegi isim

FAILOVERCLUSTERNETWORKNAME=”DBNAME”

 

;INSTANCENAME de verdiginiz isim

FAILOVERCLUSTERGROUP=”MSSQLSERVER”

 

;SQL Cluster a eklenecek diskleri tirnak içinde ve Failover Cluster Manager Tools da yazildigi sekilde girin. isimlendirmede kucuk harf ve TR karakter olmasin

FAILOVERCLUSTERDISKS=”SQLMASTER” “SQLDATA” “SQLLOG” “SQLTEMP” “SQLYEDEK”

 

INSTALLSQLDATADIR=”M:\SQL”

SQLBACKUPDIR=”Y:\SQLBackup”

SQLTEMPDBDIR=”T:\SQLTemp”

SQLTEMPDBFILECOUNT=4

SQLTEMPDBLOGDIR=”T:\SQLTempLOG”

SQLUSERDBDIR=”S:\SQLDATA”

SQLCOLLATION=Turkish_CI_AS

SQLUSERDBLOGDIR=”L:\SQLLOG”

 

2-) SQL Cluster Kurulumu:

Sunucuya SQL kurulum iso dosyasını bağlayın. Aşağıda yazılan komut setini bir text dokümanına kaydettikten sonra dosya uzantısını bat yapın. Dosyayı sunucuya kopyalayıp çalıştırın.

setup.exe /ConfigurationFile=C:\sqlclustersetupconf.ini /IACCEPTSQLSERVERLICENSETERMS

3-) SQL Cluster’a Node Ekleme

SQL Cluster kurulumu tamamlandığında SQL Cluster’a dahil edilecek diğer sunucu veya sunuculara SQL kurulum iso dosyasını yaktıktan sonra aşağıdaki komutu kendi yapınıza göre düzenleyip çalıştırınız.

setup.exe /qs /ACTION=”AddNode” /INSTANCENAME=”MSSQLSERVER” /FAILOVERCLUSTERNETWORKNAME=”DBNAME” /FAILOVERCLUSTERGROUP=”MSSQLSERVER” /SQLSVCACCOUNT=”domain\sql.servis” /SQLSVCPASSWORD=”sifre” /AGTSVCACCOUNT=”domain\sqlagent.servis” /AGTSVCPASSWORD=”sifre” /IACCEPTSQLSERVERLICENSETERMS

4-) SQL Update Yüklenmesi

Kurulum dosyasında Windows Update enable olmasına rağmen çoğu zaman SQL Cluster kurulumu aşamasında güncelleme yapamıyor. Bu nedenle aşağıda linkini verdiğim siteden SQL’in son güncellemesini indirip sunucuya kaydedin. Aşağıdaki komutta <package_name> yerine indirdiğiniz dosyanın ismini yazıp çalıştırın.

<package_name>.exe /qs /IAcceptSQLServerLicenseTerms /Action=Patch /AllInstances

5-) Yönetim

Full Desktop (GUI) olarak kurulum yapılan sunucu üzerine kuracağınız SQL Management Studio ile kurulumu yapılan SQL sunucunuza bağlanıp yönetime başlayabilirsiniz.

Umarım faydalı bir makale olmuştur, bir sonraki makalemde görüşmek üzere.

 

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu