- Home
- Casi di studio
- Migrazione MySQL senza downtime su scala TB
Migrazione MySQL Senza Downtime Su Scala TB
Come abbiamo migrato un database MySQL da 2 TB da bare metal a Kubernetes senza downtime.
Il problema
Una società SaaS fintech gestiva un database MySQL da 2 TB su server bare metal ormai datati. L’infrastruttura era vicina a fine vita. I backup erano manuali e non testati. Non c’era failover: se il primario si fermava, si fermava la piattaforma. La migrazione andava fatta presto, ma il costo di un downtime era inaccettabile.
La sfida
Non si trattava solo di spostare dati. L’azienda elabora miliardi di transazioni all’anno e ogni secondo di downtime costa. Una migrazione big-bang tradizionale non era un’opzione.
La soluzione
Abbiamo progettato ed eseguito una migrazione senza downtime con un approccio a tappe:
Fase 1: configurazione della replica
- Costruito su Kubernetes un Percona XtraDB Cluster (PXC) a 3 nodi
- Configurata la replica MySQL dal vecchio primario bare metal al nuovo cluster PXC
- Validato il lag di replica (costantemente < 100 ms)
- Eseguite query sulla replica per verificarne la correttezza
Fase 2: instradamento delle connessioni
- Installato ProxySQL davanti a entrambi i cluster
- Scritte regole di routing per inviare le letture al nuovo cluster
- Le scritture sono rimaste sul vecchio primario mentre la replica si allineava
- Monitorato il lag di replica in modo continuo
Fase 3: cutover
- Dopo 24 ore con lag di replica pari a zero, abbiamo eseguito il cutover
- Il traffico di scrittura è passato dal vecchio primario al nuovo cluster PXC (switch di 5 secondi)
- Il vecchio primario è rimasto come replica di lettura per un rollback immediato
- Dopo 2 ore di monitoraggio senza problemi, abbiamo dismesso il vecchio hardware
Fase 4: backup
- Configurato XtraBackup automatico su S3 (giornaliero + incrementale)
- Impostata la verifica dei backup (restore giornalieri su un’istanza isolata)
- Documentate le procedure di recupero
Tecnologie utilizzate
- MySQL 8.0 (InnoDB)
- Percona XtraDB Cluster 8.0
- ProxySQL 2.x (connection pooling e routing)
- XtraBackup (automazione dei backup)
- Amazon S3 (storage dei backup)
- Kubernetes (gestione del cluster PXC)
Risultati
- Zero downtime durante il cutover della migrazione
- Database da 2 TB migrato con successo e operativo
- Backup automatici giornalieri con validazione
- RTO < 5 minuti per il guasto di un singolo nodo (il cluster si ripristina da solo)
- RPO < 1 ora (backup giornalieri con ripristino incrementale)
- Fiducia del team: la piattaforma database ora è compresa e gestibile
L’azienda ha potuto dismettere hardware bare metal vecchio di 20 anni e passare a una piattaforma database cloud-native, senza alcuna interruzione della produzione.