Chapitre 17 : OzOSC - Migrations de Schéma sans Temps d'Arrêt
Info : Ce chapitre décrit l’architecture OzOSC (Online Schema Change) permettant d’altérer la structure de tables volumineuses sans bloquer les opérations d’écriture sur MySQL et MariaDB.
Dans ce chapitre :
- 17.1 Vue d’ensemble
- 17.2 Périmètre de prise en charge
- 17.3 Déroulement opérationnel
- 17.4 Suivi de progression en temps réel
- Sujets connexes
17.1 Vue d’ensemble
Exécuter un ALTER TABLE traditionnel sur des tables de production de plusieurs gigaoctets paralyse les écritures et provoque des indisponibilités de service. OzOSC élimine ce verrouillage en opérant sur une table fantôme miroir.
17.2 Périmètre de prise en charge
Le mécanisme natif s’applique aux tables MySQL et MariaDB disposant d’une clé primaire valide. PostgreSQL et SQLite n’empruntent pas ce canal.
17.3 Déroulement opérationnel
[ Table active : orders ] --(Copie delta par déclencheurs)--> [ Table fantôme : _orders_sqloz_osc ]
(Opérations en direct préservées) (ALTER TABLE appliqué)
|
(Permutation atomique < 1 ms)
v
[ Nouvelle table active : orders ]
- Création de la table fantôme : Clonage de la structure initiale à vide.
- Application de l’ALTER TABLE : Modification quasi-instantanée sur la table fantôme vide.
- Synchronisation delta : Déploiement de triggers captant en continu les modifications (
INSERT,UPDATE,DELETE) opérées sur la table active. - Recopie par lots bornés : Migration des données historiques par paquets sans saturer les I/O.
- Permutation atomique : Échange des noms de table via une opération atomique indétectable pour les utilisateurs.
17.4 Suivi de progression en temps réel
Le panneau de contrôle restitue le débit de transfert (lignes/seconde), l’estimation du temps restant (ETA) et le statut des étapes sécurisées.