Rolling Restart
Riavvio sequenziale, riavvio a rotazione
Il rolling restart è la tecnica con cui si riavviano i nodi di un cluster uno alla volta, lasciando sempre attivi gli altri. Il servizio rimane disponibile per i client durante l’intera operazione, a patto che il cluster mantenga il quorum necessario per eleggere un primary e gestire le scritture.
Come funziona #
Su un InnoDB Cluster a 3 nodi, la sequenza tipica è:
- Identificare il nodo da riavviare (preferibilmente un secondary).
- Verificare che il cluster sia
ONLINEe che tutti i membri siano sincronizzati. - Riavviare il nodo (
systemctl restart mysqldo equivalente). - Attendere che il nodo rientri nel gruppo prima di procedere con il successivo.
# Verifica stato cluster prima di ogni step
mysqlsh -- cluster status
Il nodo riavviato si riconnetterà al gruppo tramite Group Replication e recupererà le transazioni mancanti via distributed recovery. Solo dopo aver confermato il suo stato ONLINE si procede con il nodo successivo.
Quando si usa #
Il rolling restart è la procedura standard ogni volta che occorre applicare modifiche ai parametri di configurazione di MySQL (my.cnf) che richiedono un riavvio del processo, come variazioni di innodb_buffer_pool_size, innodb_log_file_size o parametri Group Replication. È anche il metodo usato per applicare patch di sistema operativo o aggiornamenti di versione minori senza finestre di manutenzione programmate.
Il limite principale è il tempo: con nodi che hanno un backlog di transazioni significativo, il recovery del nodo riavviato può richiedere diversi minuti, allungando la finestra operativa complessiva.