MySQL 8.0 → 8.4 LTS upgrade (in-place)
MySQLSeviye: OrtaSüre: 60–120 dk (veri boyutuna göre)Kurulu bir MySQL 8.0'ı aynı sunucuda (in-place) 8.4 LTS'e yükseltir: tek sunucu, source + replica'lar (önce replica'lar, en son source) ya da InnoDB Cluster (Router → Shell → metadata → secondary'ler tek tek → en son primary). Her sunucuda util.checkForServerUpgrade ön kontrolü, 8.4'te kaldırılan değişkenler ve kapalı gelen mysql_native_password, soğuk kopya ile geri dönüş noktası, doğrulama ve 8.0'a geri dönüş runbook'u vardır. Downgrade desteklenmediği için geri dönüşün tek yolu upgrade öncesi kopyadır. Yeni sunuculara taşıyarak (dump/load) geçiş için mantıksal yedek rehberinin "Başka sunucuya taşıma" modunu kullanın.
Yapı: 1 sunucu, source + replica'lar ya da InnoDB Cluster (3+ üye + MySQL Router sunucuları)
Başlamadan önce
- Sunucu(lar) MySQL 8.0'ın son alt sürümünde (8.0.4x) ve resmi MySQL repo'sundan kurulu. 8.0'dan 8.4'e doğrudan geçiş desteklenir; 5.7'den 8.4'e doğrudan geçiş desteklenmez (önce 8.0).
- … altında veri dizini + binlog boyutu kadar boş yer var (soğuk kopya için).
- Son başarılı yedek (XtraBackup 8.0 ya da mysqldump) ve geri yükleme testi var. Upgrade sonrası XtraBackup 8.4'e geçilmesi gerekir (8.0 sürümü 8.4 sunucuyu yedekleyemez).
- Uygulamanın ve istemci sürücülerinin (JDBC, PHP mysqlnd, Python…) MySQL 8.4 ve caching_sha2_password desteği test ortamında doğrulandı.
- Bakım penceresi onaylı…; replica'lar tek tek yükseltileceği için okuma trafiği azalabilir, source yükseltilirken yazma kesintisi olur….
- Source'ta binlog saklama süresi replica'ların upgrade süresinden uzun (replica'lar durdurulduğunda geride kalan binlog'lar silinmemeli).
- Cluster sağlıklı: tüm üyeler ONLINE, single-primary mod; formdaki ilk üye şu anki primary. RECOVERING üye ya da OK_PARTIAL / OK_NO_TOLERANCE durumu varken upgrade'e başlamayın.
- Cluster yönetici hesabı … tüm üyelere … portundan bağlanabiliyor ve parolası biliniyor (MySQL Shell her bağlantıda sorar).
- Router sunucularında MySQL Router resmi MySQL repo'sundan kurulu ve systemd servisi (mysqlrouter) ile çalışıyor. Uygulama trafiği birden çok Router üzerinden geliyorsa Router'lar tek tek yükseltilir.
- Uygulama yalnız Router üzerinden bağlanıyor (doğrudan üye adına bağlanan uygulama, primary rolü değiştiğinde yazamaz).
Rehberin aşamaları
- Ön kontrol — Mevcut durum · 8.4 repo'sunu ekle ve MySQL Shell 8.4'ü kur · Upgrade Checker'ı çalıştır · Kaldırılan değişkenleri yapılandırmada ara · mysql_native_password hesaplarını taşı
- InnoDB Cluster ön kontrol — Cluster durumunu ve Router'ları kaydet · Metadata upgrade ihtiyacını kontrol et (dryRun)
- Metadata upgrade — dba.upgradeMetadata() çalıştır
- Primary değişimine hazırlık — Secondary'lerin 8.4'te ve ONLINE olduğunu doğrula
- InnoDB Cluster son kontrol — Cluster durumunu genişletilmiş olarak kontrol et · Primary rolünü ilk üyeye geri ver
- Upgrade sonrası — Replikasyonu kontrol et (…) · XtraBackup'ı 8.4'e geçir ve yeni full yedek al · mysql_native_password hesaplarını taşı (kalıcı çözüm) · Geri dönüş kopyasını silme kararı
- Geri dönüş (8.0'a dönüş) — Geri dönüş: 8.4'ü durdur, veri dizinini kenara al · Geri dönüş: 8.4'ü durdur, veri dizinini kenara al · Geri dönüş: 8.0 yazılımına dön · Geri dönüş: 8.0 yazılımına dön · Geri dönüş: soğuk kopyayı geri koy · Geri dönüş: soğuk kopyayı geri koy …