DBAtlas · Veritabanı operasyon atlası

MySQL InnoDB Cluster (Group Replication + MySQL Router)

MySQLSeviye: İleriSüre: 90–120 dk

Aynı veri merkezindeki 3 (ya da 5–9) kurulu MySQL sunucusundan single-primary InnoDB Cluster kurar: MySQL Shell AdminAPI ile dba.configureInstance, createCluster ve clone ile addInstance; MySQL Router bootstrap (6446 RW / 6447 RO), cluster.status() izleme, failover testi, quorum kaybı, tam kesinti ve rolling restart runbook'ları. Sonunda primary düştüğünde kendiliğinden failover yapan ve uygulamanın Router üzerinden bağlandığı bir cluster elde edersiniz. Uzak site ya da basit okuma ölçekleme için klasik replikasyon, kurulu cluster'ın günlük işletimi için InnoDB Cluster işletim rehberi kullanılır.

Yapı: 3–9 MySQL node'u + 1 Router sunucusu

Başlamadan önce

  • Tüm node'larda MySQL … aynı alt sürümde kurulu (DBAtlas MySQL tek sunucu kurulumu rehberi), GTID açık, her node'da farklı server_id. İşletim sistemi root'u mysql ile parolasız bağlanabiliyor.
  • Node 2..… üzerinde korunacak veri yok: cluster'a eklenirken clone ile node 1'in (…) kopyası alınır, mevcut verileri silinir.
  • Node 1'deki tüm tablolar InnoDB ve primary key'li (Group Replication şartı). Kontrol sorgusu boş dönmeli.
  • Node'lar birbirine 3306 (MySQL ve Group Replication iletişimi), 33060 (X Protocol) ve 33061 portlarından; Router sunucusu node'lara 3306/33060'tan erişebiliyor. Gecikme düşük (aynı veri merkezi; < 1–2 ms).
  • Saatler senkron (chrony).
  • Node sayısı tek (…): … node en fazla … node kaybını tolere eder. Çift sayı ek tolerans getirmez.
  • Cluster yönetici hesabı (…) için güçlü bir parola hazır (en az 8 karakter, büyük/küçük harf, rakam, özel karakter). MySQL Shell ve Router parolayı adımlarda ekrana yazmadan sorar; Shell'e parolayı kaydetmemesi söylenir.
  • Router sunucusu repo.mysql.com'a erişebiliyor (MySQL repo'su bu rehberde eklenecek).

Rehberin aşamaları

  • Hazırlık (tüm MySQL node'ları) — Firewall'da cluster portlarını aç · SELinux'a Group Replication portunu tanıt · Cluster ayarlarını ekle (…) · MySQL'i yeniden başlat · MySQL Shell'i kur
  • Instance yapılandırması (dba.configureInstance) — Cluster yönetici hesabını oluştur (…) · Instance'ları uzaktan denetle
  • Cluster'ı oluştur — Cluster'ı oluştur · Node'u cluster'a ekle (…) · Cluster durumunu kontrol et
  • MySQL Router — MySQL repo'sunu ekle (Router sunucusu) · Router ve Shell'i kur · Router'ı bootstrap et · Router servisini başlat · Firewall'da Router portlarını aç · Router üzerinden bağlantıyı test et
  • Doğrulama ve izleme — Ayrıntılı durum · Üyeleri SQL ile izle
  • Failover testi — Failover: primary'yi durdur · Failover: primary'yi durdur · Failover: yeni primary'yi gör · Failover: yeni primary'yi gör · Failover: Router yeni primary'ye yönlendiriyor mu · Failover: Router yeni primary'ye yönlendiriyor mu …
  • Quorum kaybı ve tam kesinti — Quorum: durumu teşhis et · Quorum: durumu teşhis et · Quorum: ayakta kalan bölümle zorla quorum kur · Quorum: ayakta kalan bölümle zorla quorum kur · Quorum: geri dönen node'da eski grubu durdur (…) · Quorum: geri dönen node'da eski grubu durdur (…) …
  • Rolling restart (bakım) — Rolling: secondary'yi yeniden başlat (…) · Rolling: secondary'yi yeniden başlat (…) · Rolling: primary rolünü devret · Rolling: primary rolünü devret · Rolling: eski primary'yi yeniden başlat · Rolling: eski primary'yi yeniden başlat …
Ortamına göre adım adım planı aç →