MSSQL SERVER ALWAYS_ON KURULUMU-1

Bu makalede AlwaysOn kurulumunu detaylı bir şekilde görmüş olacağız. Bu sistem kurulumu için elimde Active directory kurulu olduğu AD sunucusu sql server’larımı kuracağım S1 ve S2 sunucusu ile AlwaysOn yapısı oluşturmuş olacağım. S1 ve S2 sunucusu ortak bir cluster içerisinde olmuş olacak.

Önceki makalelerimde sanal makinede sunucular nasıl oluşturulur belirtilen sunuculara ip ataması, sunucu bazlı bazı konfigürasyon ayarları, domain’e sunucularımı dahil etme active directory üzerinde  oluşturmuş olduğum kullanıcıyı sql server servisi olarak map etme, failover cluster nedir kurulumu nasıl yapılır ve basit bir şekilde AlwaysOn  işlemlerini görmüş olduk.

Biraz teori bilgilerle AlwaysOn yapısının ne olduğunu ne gibi fayda sağladığını ele alalım. AlwaysOn yapısı log shipping, database mirroring ve failover cluster teknolojilerinin en gelişmişi olan yeni bir teknoloji olarak karşımıza çıkmaktadır.

Bu yapı aynı veri merkezinde birden fazla sunucunun senkron bir şekilde çalışarak herhangi bir sorun anında sistemin bulunduğu ortamdaki bir sunucuya kendini devretmesi yada herhangi bir doğal afet felakat durumunda sistemin üzerinde bulunan yükü uzak lokasyondaki sunucuya devretmesi işidir bu karşımıza Disaster Recovery olarak karşımıza çıkmaktadır.

Sırasıyla bu sistemin kurulumu için nasıl konfigürasyonun yapılması gerektiği ve ne gibi kurulumlara ihtiyacımız var ona değinmiş olacağız. AlwaysOn yapısında aynı Availability Group(AG) altında toplanan veritabanlarının bir grup oluşturarak toplu bir şekilde işlem yapmamıza olanak sağlar. Ama database mirroring ve log shipping yapılarında database bazlı işlem yapıldığını başka makalelerimde görmüş olacağız. AlwaysOn yapısında birden fazla AG oluşturarak AG bazlı failover işlemin gerçekleştire bileceğimizi söylebiliriz. Sunucu bazlı failover işleminde tüm AG’lerin kendini ikinci sunucuya atma işlemi olmuş olacaktır.

  1. AD,S1 ve S2 sunucularına Windows Server kurulumu
  2. AlwaysOn yapısı için S1 ve S2 sunucularında aynı boyutta(aynı boyutta olması tavsiye edilir ama şart değil) ve aynı isimde Drive olması, disk içindeki klasör yollarının aynı olması gerekmektedir.
  3. Windows Server ve CU(cumulative update) güncelleştirmelerinin yapılması
  4. AD,S1 ve S2 sunucularına isim ataması ve aynı network’te ip konfigürasyonu, ipv6 kapatılması(herhangi bir role kurulumunda hata mesajıyla karşılaşabiliriz.)
  5. AD sunucusuna active directory kurulumu
  6. S1 ve S2 sunucularımı domain’e dahil etme
  7. Sunucularım üzerinde Windows firewall kapama işlemleri, Time zoneların ayarlanması ve aynı olması, dil,bölge tarih saat dilimin aynı olması, Event log’a düşen logların toleransını ayarlanması gerekmektedir.
  8. Sql Server’ı yüksek performans’ta çalışacak şekilde ayarlamak High Performance ayarlamasının yapılması
  9. Sunucularıma ağdan gelen iş yüklerini cpu’ya dağıtmak
  10. Sql Server servis hesabının ortak bir hesap olması ve her SQL sunucusu üzerinde ‘Local Admin’ hakkına sahip olması Administrator grubuna eklenmesi gerekmektedir.
  11. Sunucularımı Failover Cluster yapısını kurma, S1 ve S2 Sunucuların  aynı Windows Cluster’a eklenmesi
  12. Cluster Computer Account oluşturulması ve Security ayarlarının yapılması.(SQL server servis hesabı full yetkili verilecek.)
  13. S1 ve S2 sunucularına SQL Server Stand-Alone  kurulumu
  14. Sunucularda kurulan Sql Server’ın aynı servis account’larının olması.
  15. SQL Server Configuration Manager üzerinde, AlwaysOn Availability Group Enable edilmesi
  16. Active Directory üzerinde OU oluşturulması, SQL Serverların ve Cluster Account’un ilgili OU altına taşınması cluster objesinin OU üzerinde yetkilendirilmesi(Create Computer Object) Not: Eğer yetkilendirme işlemi yapılmazsa listener oluştururken hata mesajı ile karşılaşılması büyük olasılıktır.
  17. Availability Group oluşturulması, Listener eklenmesi
  18. Database’lerin Full recovery model ve full backupları alındıktan sonra  AG’ye eklenme işlemi.

Yukarıdaki işlemler tam donanımlı kurulacak bir sql server için olmazsa olmaz yapılarımız. Şimdi yukarıdaki tüm konfigürasyonları yapıp tam donanımlı AlwaysOn yapımızı kurmuş olalım. Yukarıdaki numaralandırılmış maddeleri karışık bir şekilde yapıp tüm numaraları ilgili bölümde belirtmiş olacağım. İlk 6 maddenin kurulumu ve hazırlık işlemi sıfırdan kurulum makalemde bulabilirsiniz.

Kurulumun 8. Maddesindeki bu yapı SQL Server’ın daha yüksek performans ile çalışabilmesi için windows üzerinde yapılan bir ayardır. Windows üzerindeki bu power plan ayarı, eğer SQL Server sunucusu sürekli yük altındaysa microsoft’un önerdiği yöntemlerden biri. Control panelinden Power Options Bölümünden yapılır.

Yukarıdaki  ayarlamaları iki sunucum içinde yapıyorum.

Kurulumun 7. Maddesindeki  yapılması gereken  başka bir ayar Event log’a düşen logların toleransını ayarlanması gerekmektedir. Control panel’den User Accounts>Change User Account Control settings kısmından yapılması lazım hata toleransı Windows event log’a nasıl düşsün bunun ayarlaması yapılmaktadır. Kullanmış olduğunuz Windows sürümüne göre ilgili bölümün uzantısı farklılıklar gösterebilir.

Kurulumun 9. Maddesindeki  yapılması gereken ayar ağdan gelen iş yüklerini cpu’ya dağıtmak için aşağıdaki belirtilen kısmın enable edilmesi gerekmektedir.

Kurulumun 7. Maddesinde Sunucularım üzerinde Windows firewall kapama işlemleri, Time zoneların ayarlanması ve aynı olması, dil, bölge tarih saat dilimin aynı olması gerekmektedir. Aşağıdaki Date time bölümünde sırası ile kontrol edilmektedir.

Time zone ayarlamasından sonra Region bölümünde gerekli ayarlamalar yapılır.

Windows Defender Firewall with Advanced Security bölümüne girilir.

Yukarıdaki ilgili bölüme girdikten sonra çerçeve içine alınmış olan Windows Defender Firewall Properties  kısmından açık olan özellikler pasif hale getirilir.

Domain Profile, Private Profile ve Public Profile pasif hale getirilir.

SQL Server, belirli ağ bağlantı noktalarını (ports) kullanır ve bunların açık olması gerekir. Özellikle:

  • SQL Server için varsayılan port: 1433 (TCP) ve SQL Server Browser servisi için 1434 (UDP).
  • Named Instances: SQL Server’ın named instance’ları farklı portlarda çalışabilir.

Windows Defender Firewall, bu portları engelleyebilir, bu da SQL Server’ın uzak istemcilerle iletişim kuramamasına veya sunucunun bağlantılarını alamamasına neden olabilir.

SQL Server, yerel ve uzak istemciler tarafından erişilebilir olmalıdır. Eğer Windows Defender Firewall, SQL Server’ın kullandığı portlara izin vermezse, istemciler SQL Server’a bağlanamaz. Bu, özellikle SQL Server Management Studio (SSMS) gibi araçları kullanarak uzaktan bağlanmayı zorlaştırır.

Bu işlemleri tüm sunucularım üzerinde yapmam gerekiyor. Yukarıda bazı ayarlamaları yaptıktan sonra şimdi diğer kurulum aşamalarına geçebiliriz. Bu kurulumda yukarıdaki belirtilen maddeler yapılmış olacak.

Şimdi S1 ve S2 sunucuma sql server kurulumu yaparak AlwaysOn’a dahil ederek detaylı bir kurulum işlemi yapmaya çalışalım.

Data, log, backup, tempdb için ayrı disklerin olunması öneriliyor microsoft’un sunmuş olduğu performans anlamında bize fayda sağlayacak best practice değeri bu. Bende buna benzer bir yapı olsun diye bu yapının benzerini oluşturuyorum. Yeterli disk alanım olmadığı için tempdb oluşturamadım.

Siz bu kısımda yeni disk adımları oluşturmayıp C diskinizin üzerinde her şeyi( backup,log,data,temp) yapabilirisiniz. Böyle bir kurulum yapacaksanız bu adımları geçebilirsiniz.

Bunun için S1 ve S2 sunucumda bu diskler için alan tahsis ediyorum. Bunun için Hyper-v yöneticisin’den S1 ve S2 sunucularına disk tahsisi yapalım.

Hyper-v sanal makinemde sunucularımı kapattıktan sonra aşağıdaki resimde belirtilen yerden sunucularıma disk alanı tahsis ediyorum.

Gerçek sistemlerde sabit boyutlu disk seçilmesi lazım biz kendi test ortamımızda yaptığımız için dinamik olarak genişletilen bölümünü seçiyorum ve bir sonraki aşamaya geçiyorum. Başlangıç olarak verdiğimiz disk alanı tahsis edilmesin diye yapılmaktadır.

İsim ve diskimizin konumunu belirledikten sonra bir sonraki adıma geçiyoruz.

Disk alanı ve gerekli kontrolleri yaptıktan sonra işlemlerimi sonlandırıyorum.

Yukarıda bir disk için kurulumunu detaylı yaptıktan sonra şimdi log  ve backup disklerimizi yapılandıralım.

S1 sunucusunda bu işlemleri yaptıktan sonra S2 sunucusuna geçip aynı adımları tekrarlayalım. Çünkü AlwaysOn kurulumu için disk yollarının ve uzantılarının aynı olması gerekmektedir.

Aşağıdaki resimlerde göründüğü gibi log ve backup disklerimi oluşturmuş oluyorum.

Şimdi disk konfigürasyonuna geçelim. S1 ve S2 sunucularımda aynı yapıda oluşturuyorum.(S2 sunucumda aynı disk yapılanmasını yapıyorum.) Resimli bir şekilde disklerimi tanımlıyorum.

Offline üzerine sağ tıklayıp Online işlemi yapıyoruz.

Not Initialize Disk üzerine sağ tıklayıp Initialize Disk diyiyoruz.

Gelen ekranda GPT formatını seçiyoruz.

Not: GPT (GUID Partition Table) ve MBR (Master Boot Record), sabit disklerde kullanılan iki farklı disk bölümlendirme (partitioning) biçimidir. Her ikisi de, diskin nasıl yapılandırılacağını ve üzerinde veri nasıl saklanacağını belirler.

MBR (Master Boot Record):Daha eski sistemlerde tercih edilir.2 TB‘ya kadar olan disklerde çalışabilir.En fazla 4 ana bölümlendirme (primary partition) desteği sağlar (ya da 3 ana bölümü ve 1 genişletilmiş bölümü).

GPT (GUID Partition Table): Daha güvenli ve esnektir; işletim sistemi, UEFI (Unified Extensible Firmware Interface) ile uyumludur.2 TB’dan daha büyük disklerde de kullanılabilir ve 9,4 zettabayta kadar destekler. 128’den fazla bölüm desteği sunar.Yeni bir sistemdir ve daha modern işletim sistemleri tarafından kullanılır.

Unallocated alanına sağ tıklayıp New Simple Volume’e tıklıyoruz.

Next deyip bir sonraki alana ilerliyoruz.

Belirlenmiş alanda bir değişiklik yapmayıp Next deyip bir sonraki aşamaya geçiyoruz.

Gelen ekranda Assign the following dirive letter bölümünü seçip diskimiz için bir harf belirliyoruz.

Mount disk yapılandırılmaları için ikinci seçeneği seçmemiz gerekiyor.

Gelen ekranda NTFS ve sql server diskten verileri 64 KB’lık extent’ler şeklinde aldığı için Allocation unit size kısmını 64 seçiyorum ve diskime bir alan belirlemiş oluyorum.

Next dedikten sonra gelen ekranda Finish dedikten sonra işlemlerimi sonlandırıyorum.

Disklerin kurulumunu yukarıdaki gibi yapıyoruz ve S2 sunucusundada aynı disk harfi olmak şartıyla isimleme yapıyoruz. Tüm disklerim için kurulum aşamasını göstermedim. Mantığım aynı olduğu için.

S1 sunucumda aynı disk ismimi ve harf ismimi  S2 sunucumda da yapıyorum.

Disk boyutları aynı olması şart değil best practices olarak kabul edilen bir şey. Benim elimde yeterli disk alanım olmadığı için bu yapıda yapmış oldum. Yoksa temp diskimin ve mount disk yapılandırmasıda yapmış olurdum.

Bu makaleden sonra SIFIRDAN ALWAYS_ON KURULUMU-2 makalesini okumalısınız.

“Elif. Lâm. Mîm. Allah ki, O’ndan başka hiçbir ilâh yoktur. O, ebedî diridir. Varlığı kendinden olup bütün kâinatı yönetendir.” Âl-i İmrân-1-2

Bir yanıt yazın

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