Capitolo 17: OzOSC - Modifiche di Schema a Zero Downtime
Info: Questo capitolo illustra l’architettura OzOSC (Online Schema Change) per applicare alterazioni DDL a tabelle di produzione senza causare blocchi di lettura o scrittura su MySQL e MariaDB.
In questo capitolo:
- 17.1 Panoramica
- 17.2 Stato del Supporto
- 17.3 Sequenza Operativa
- 17.4 Monitoraggio in Tempo Reale
- Temi correlati
17.1 Panoramica
L’esecuzione di comandi ALTER TABLE su tabelle di produzione massive provoca blocchi di lock e tempi di inattività del servizio (downtime). OzOSC azzera questa criticità attraverso una procedura con tabella ombra (Shadow Table).
17.2 Stato del Supporto
La modalità nativa è operativa per tabelle gestite su MySQL e MariaDB dotate di Primary Key verificata. PostgreSQL e SQLite non utilizzano questo flusso nativo.
17.3 Sequenza Operativa
[ Tabella in Produzione : orders ] --(Trigger Delta Copy)--> [ Tabella Ombra : _orders_sqloz_osc ]
(Operazioni attive in corso) (ALTER TABLE applicato)
|
(Scambio atomico < 1 ms)
v
[ Nuova Tabella : orders ]
- Creazione tabella ombra: Creazione di una struttura identica a quella originaria, inizialmente priva di record.
- Applicazione schema change: L’
ALTER TABLEviene eseguito istantaneamente sulla tabella ombra vuota. - Sincronizzazione delta con trigger: Vengono predisposti trigger temporanei per specchiare le istruzioni
INSERT,UPDATE,DELETEattive. - Copia dei record storici: I dati preesistenti vengono riversati a blocchi senza saturare le risorse del server.
- Scambio atomico finale: Con un’istruzione atomica di rinomina, la tabella ombra sostituisce quella in linea senza interruzioni.
17.4 Monitoraggio in Tempo Reale
Il pannello di esecuzione mostra la velocità di trasferimento (righe al secondo), il tempo residuo stimato (ETA) e lo stato di avanzamento delle singole fasi.