SQL Server Always On Availability Group (Linux, Pacemaker)
SQL ServerSeviye: İleriSüre: 120–180 dkSQL Server 2022 kurulu üç Linux sunucusundan (RHEL 9 ya da Ubuntu 22.04) Pacemaker yönetimli Always On AG kurar: mssql-server-ha, hadr.hadrenabled, sertifikayla kimlik doğrulayan mirroring endpoint'leri, CLUSTER_TYPE = EXTERNAL AG (3 senkron replica ya da 2 senkron + configuration-only), automatic seeding, pacemaker/corosync/pcs cluster, fencing (STONITH), ocf:mssql:ag kaynağı, listener IP kaynağı ve constraint'ler, listener ve planlı failover testi. Sonunda primary çöktüğünde Pacemaker'ın otomatik failover yaptığı, listener IP'si primary ile taşınan bir AG elde edersiniz.
Önce her node'u SQL Server Linux kurulumu ile kurun. Windows ve WSFC için Always On AG (Windows); kurulu AG'nin günlük işletimi ve arızaları için AG işletimi.
Yapı: 3 Linux node: 3 senkron replica ya da 2 senkron + configuration-only replica
Başlamadan önce
- Üç node'da SQL Server 2022 aynı sürüm ve CU ile kurulu (Linux kurulumu)…; configuration-only node'da Express de olabilir…, … sysadmin. Parola: read -rsp 'Parola: ' SQLCMDPASSWORD; export SQLCMDPASSWORD ve sudo --preserve-env=SQLCMDPASSWORD bash <betik>.sh.
- Her node'da hostname çıktısı ile SQL Server'daki @@SERVERNAME birebir aynı ve node listesindeki adla eşleşiyor. Eşleşmezse Pacemaker kaynağı replica'yı bulamaz (RESOLVING).
- Node'lar birbirini adla çözüyor (DNS ya da /etc/hosts) ve şu portlar açık: SQL …/tcp, endpoint …/tcp, Pacemaker 2224/tcp, 3121/tcp, 5403/tcp, 21064/tcp, 5404–5405/udp. Listener IP'si (…) kullanılmıyor.
- Her node'da RHEL aboneliği ve High Availability Add-On etkin (rhel-9-for-x86_64-highavailability-rpms repo'su).
- Node'ların saati NTP ile eşit (chronyd / systemd-timesyncd); corosync ve sertifikalar saat farkına duyarlıdır.
- …Her node'un BMC (iLO/iDRAC/IPMI) adresine node'lardan erişilebiliyor; fencing kullanıcısının güç kapatma/açma yetkisi var.…vCenter'a (…) node'lardan 443/tcp ile erişilebiliyor; fencing hesabının bu VM'lerde güç işlemleri yetkisi var.… Red Hat yalnız desteklenen fencing yöntemlerini destekler (aynı sanallaştırma platformu).
- Parolalar hazır ve kasada: SQL master key, sertifika private key yedeği, … login'i, hacluster kullanıcısı…, fencing hesabı…. Adımlar parolaları ekrana yazmadan sorar.
- Bakım penceresi: SQL Server servisleri bir kez yeniden başlatılır (hadr.hadrenabled) ve failover testi listener'ı birkaç saniye keser.
Rehberin aşamaları
- Node'ları hazırla — Node adlarını hosts dosyasına ekle · Firewall'da SQL, endpoint ve Pacemaker portlarını aç
- SQL Server: HA ajanı, Always On ve endpoint'ler — SQL Server HA ajanını kur (mssql-server-ha) · Always On'u etkinleştir ve SQL Server'ı yeniden başlat · AlwaysOn_health oturumunu açılışta başlat · Pacemaker için SQL Server login'i ve parola dosyasını oluştur · Endpoint sertifikasını oluştur ve yedekle (node 1) · Sertifika dosyalarını diğer node'lara kopyala (node 1) …
- Availability Group (CLUSTER_TYPE = EXTERNAL) — AG'yi oluştur (node 1) · Secondary'yi AG'ye kat: … · Veritabanını FULL recovery'ye al, yedekle ve AG'ye ekle (node 1) · Automatic seeding'i ve senkronizasyonu izle (node 1)
- Pacemaker cluster — Pacemaker, corosync ve pcs'i kur · hacluster parolasını ver ve pcsd'yi başlat · Ubuntu'nun varsayılan cluster yapılandırmasını temizle · Cluster'ı oluştur ve başlat (node 1) · Fencing'i (STONITH) yapılandır (node 1) · Cluster özelliklerini ayarla (node 1) …
- Listener — Listener'ı oluştur (node 1) · Listener üzerinden bağlantıyı test et
- Doğrulama ve failover testi — AG sağlığını kontrol et · Planlı failover testi: … primary olsun · Geri dön: … yeniden primary olsun
- Kurulum sonrası — Login'leri, job'ları ve sunucu nesnelerini eşitle · Yedek ve izlemeyi kur