DBAtlas · Veritabanı operasyon atlası

SQL Server Always On AG işletimi (Windows ve Linux)

SQL ServerSeviye: İleriSüre: 15–90 dk (senaryoya göre)

Kurulum değil, kurulu bir Always On Availability Group'un günlük işletimi ve arıza senaryoları: sağlık kontrolü, gecikme ve log büyümesi teşhisi, planlı failover, zorunlu failover (FORCE_FAILOVER_ALLOW_DATA_LOSS) ve sonrası, veri akışını durdurma/sürdürme, senkron/asenkron mod, veritabanı ekleme (automatic seeding ya da backup/restore), replica ekleme/çıkarma, read-only routing ve listener değişiklikleri. Windows'ta WSFC, Linux'ta Pacemaker (pcs) komutlarıyla.

Ne yapacağınızı senaryo kartından seçin; hata kodunu (ör. 9002, 35264, 41142) katalog aramasına yazarak da doğrudan ilgili senaryoyu açabilirsiniz. AG henüz yoksa: AG (Windows) ya da AG (Linux).

Yapı: 2–9 replica'lı AG (Windows WSFC ya da Linux Pacemaker)

Senaryolar

  • AG sağlık kontrolü (dashboard sorguları) — Her şey yolunda mı? Replica / veritabanı durumu, failover'a hazırlık, cluster ve son rol değişimleri. Hiçbir şeyi değiştirmez.
  • Secondary geride kalıyor / log dosyası büyüyor (gecikme teşhisi) — send/redo kuyruğu büyüyor, secondary'de veri eski, primary'de log dolmak üzere (log_reuse_wait = AVAILABILITY_REPLICA) ya da commit'ler yavaş (HADR_SYNC_COMMIT).
  • Planlı failover (switchover, veri kaybı yok) — Bakım, patch ya da test için primary'yi senkron ve SYNCHRONIZED bir secondary'ye taşır; birkaç saniye kesinti, veri kaybı yok.
  • Primary kayıp: zorunlu failover (FORCE_FAILOVER_ALLOW_DATA_LOSS) — Primary (ya da tüm site / cluster quorum) kayıp ve beklenemez: veri kaybı göze alınarak bir secondary primary yapılır; sonra veri karşılaştırılır ve diğer replica'lar sürdürülür.
  • Veri akışını durdur / sürdür (SUSPEND / RESUME) — Secondary'ye veri gönderimini geçici durdurmak (ağ bakımı, toplu işlem) ya da askıda kalmış (SUSPENDED) veritabanını sürdürmek.
  • Senkron / asenkron modu değiştir — Bir replica'yı SYNCHRONOUS_COMMIT ↔ ASYNCHRONOUS_COMMIT yapmak (uzak site, yavaş ağ, DR tatbikatı) ve commit korumasını (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT) ayarlamak.
  • AG'ye veritabanı ekle (automatic seeding ya da backup/restore) — Yeni ya da mevcut bir veritabanını AG'ye almak: küçük/orta veritabanlarında automatic seeding, büyük veritabanlarında ya da yavaş ağda yedekten.
  • Replica (node) ekle — AG'ye yeni bir secondary eklemek: node cluster'a katılır, endpoint hazırlanır, ADD REPLICA + JOIN, veritabanları seeding ile gelir.
  • Replica (node) çıkar — Kalıcı olarak kapatılacak ya da yeniden kurulacak bir secondary'yi AG'den ve cluster'dan çıkarmak.
  • Okuma yönlendirmesi (read-only routing) — ApplicationIntent=ReadOnly bağlantıları listener üzerinden okunabilir secondary'lere yönlendirmek (raporlama yükünü primary'den almak).
  • Listener oluştur ya da değiştir (IP, port) — Listener yoksa oluşturmak, portunu değiştirmek ya da (Windows) ikinci alt ağ için IP eklemek.

Başlamadan önce

  • Her node'da sqlcmd (/opt/mssql-tools18/bin/sqlcmd) ve … sysadmin; root yetkisi (pcs). Parola: read -rsp 'Parola: ' SQLCMDPASSWORD; export SQLCMDPASSWORD ve sudo --preserve-env=SQLCMDPASSWORD bash <betik>.sh.
  • PowerShell yönetici olarak, SQL Server'da sysadmin ve WSFC'de yönetici bir domain hesabıyla açıldı; sqlcmd ve FailoverClusters modülü var.
  • Formdaki replica listesinin 1. satırı şu anki primary (sağlık kontrolünün ilk sorgusuyla doğrulayın); adımlar bu sıraya göre doğru node'a yerleşir.
  • Değişiklik penceresi onaylandı ve uygulama ekibi bilgilendirildi…: listener birkaç saniye kesilir, açık transaction'lar geri alınır……: port/IP değişikliği bağlantı dizelerini etkiler….
  • Zorunlu failover kararı yetkili kişi tarafından verildi ve veri kaybı kabul edildi: primary'ye ulaşılamıyor ve makul sürede geri gelmeyecek. Primary geri gelebiliyorsa beklemek ya da planlı failover her zaman daha iyidir.

Rehberin aşamaları

  • AG sağlık kontrolü — AG panosu: replica'lar, veritabanları, failover hazırlığı · Cluster durumu (WSFC) · Cluster durumu (Pacemaker) · Son rol değişimleri (AlwaysOn_health)
  • Gecikme ve log büyümesi teşhisi — Teşhis: kuyruklar, hızlar ve tahmini yetişme süresi (primary) · Teşhis: commit beklemeleri (primary) · Teşhis: redo engelleniyor mu? (secondary'lerde) · Çözüm seçenekleri ve log kontrolü
  • Planlı failover — Teşhis: hedef failover'a hazır mı? (…) · Güvenlik ağı: uzun transaction ve çalışan job var mı? (primary) · Failover: … primary olsun (T-SQL) · Failover: … primary olsun (pcs) · Doğrula: yeni primary ve listener
  • Zorunlu failover (veri kaybı olabilir) — Teşhis: hedefin durumu ve olası veri kaybı (…) · WSFC quorum'u zorla başlat (…) · Pacemaker'ın AG kaynağını yönetmesini durdur (…) · Zorunlu failover: … primary olsun · Doğrula: yeni primary açık, diğerleri SUSPENDED · Kaybolan veriyi kurtarmak için eski primary'de snapshot al (…, geri geldiğinde) …
  • Veri akışını durdur / sürdür — Teşhis: askıdaki veritabanları ve nedeni · …Veri akışını durdur (SUSPEND)…Veri akışını sürdür (RESUME)… · Doğrula ve izle
  • Availability mode değişikliği — Teşhis: mevcut modlar ve commit koruması · … → … · Commit korumasını ayarla (Windows) · Commit korumasını ayarla (Pacemaker) · Doğrula
  • AG'ye veritabanı ekle — Teşhis: veritabanı AG'ye uygun mu? (primary) · Hazırla: FULL recovery ve yedek (primary) · Replica'ları manuel seeding'e al (primary) · Veritabanını AG'ye ekle (primary) · Seeding'i izle (primary) · Secondary'de yedekten hazırla (NORECOVERY): … …
  • Replica ekle — Yeni node'u WSFC'ye ekle (primary) · Always On'u etkinleştir (yeni node) · Endpoint'i oluştur ve yetki ver (yeni node) · Yeni node'u hazırla: HA ajanı, Always On, cluster yazılımları · Endpoint sertifikasını yeni node'a kopyala (primary) · Sertifika, endpoint ve Pacemaker login'i (yeni node) …
  • Replica çıkar — Teşhis: çıkarılacak replica ve kalan yapı · Node'u Pacemaker cluster'ından çıkar (primary) · Replica'yı AG'den çıkar (primary) · Node'u WSFC'den çıkar (isteğe bağlı) · Çıkarılan node'daki RESTORING veritabanlarını temizle (…)
  • Read-only routing — Teşhis: okuma izinleri ve mevcut routing · Routing URL'lerini ve listeleri tanımla (primary) · Doğrula: routing listesi · Test: ReadOnly bağlantı nereye gidiyor? · Test: ReadOnly bağlantı nereye gidiyor?
  • Listener — Teşhis: mevcut listener'lar · Virtual IP kaynağını ve constraint'leri oluştur (Pacemaker) · …Listener'ı oluştur…Listener portunu değiştir…Listener'a IP ekle… (primary) · Firewall ve DNS ayarları · Firewall ayarları · Doğrula: listener üzerinden bağlantı
Ortamına göre adım adım planı aç →