Migration MySQL vers Oracle : 250 Go de données migrées sans interruption de service

Migration Base de donnée vers oracle
de documents
0 To
de données BDD
0 Go
de migration
0 Jours
interruption
0
tâches planifiées
0

La Région Île-de-France gère quotidiennement près de 2 To de documents critiques via sa GED GEDIF, basée sur Alfresco interconnectée à une dizaine d’applications métiers et accessible en direct à travers les portails Alfresco et des interfaces métiers basées sur ADF.

Migrer la base de données de MySQL vers Oracle 19c représentait un défi technique majeur : comment transférer 250 Go de données structurées sans impacter les milliers d’agents qui l’utilisent chaque jour en direct ou à travers les applications métier ?

bluexml_Region_ile_de_france

Un défi technique complexe

La contrainte était claire : zéro interruption de service pendant les opérations de migration. Avec un temps de transfert estimé à 8 jours pour la migration complète, il fallait concevoir une approche permettant à GEDIF de rester pleinement opérationnelle.

L’architecture Alfresco en cluster (de nombreux nœuds répartis entre le cœur, les IHM, services divers déployés…) ajoutait une complexité supplémentaire : chaque composant devait être reconfiguré de manière coordonnée.

Plusieurs mois de préparation, une centaine de tâches

La réussite de cette migration repose sur une longue phase de préparation. Ce travail en amont, mené conjointement par les équipes de la Région Île-de-France et de bluexml, a permis de :

  • Définir un plan de migration détaillé couvrant environ 100 tâches
  • Anticiper les risques techniques et organisationnels
  • Concevoir et tester les outils d’extraction, transformation et chargement
  • Prévoir les mécanismes de retour arrière
  • Documenter l’ensemble des procédures (plus de 50 pages de mode opératoire)

Une architecture de migration innovante

L’architecture de migration s’appuie sur un schéma ETL d’extraction, de transformation via des scripts Python et de chargement via transfert NFS et SQL*Loader mais a nécessité de nombreuses optimisations dont les principales sont :

Contournement du bug mysqldump

L’outil natif mysqldump de MySQL présente un bug bloquant sur l’export des BLOBs, inclus dans certaines tables Alfresco. Des scripts Python dédiés ont été développés pour extraire les données en CSV et encoder séparément les BLOBs en hexadécimal.

Orchestration par lots

Un système de workers Python surveille automatiquement la disponibilité des lots extraits de MySQL. Dès qu’un lot est prêt, SQL*Loader est déclenché pour charger les données dans Oracle. Cette parallélisation sur 4 threads simultanés optimise les temps de traitement tout en préservant la stabilité des serveurs.

Optimisation des transferts de données

Le système de transfert des lots extraits se fait par étape, avec d’abord une extraction sur disques rapides locaux, suivie d’une compression intelligente des données, pour finir par une copie des données compressées sur les disques montés en NFS depuis la baie de disque. Ceci a permis des gains très importants sur les temps de transfert des données extraites de la base de données.

Migration différentielle via binlogs

Pendant les 8 jours de migration de masse, la production continue de générer des données. Pour garantir la cohérence finale, nous avons développé un mécanisme de migration différentielle basé sur l’analyse des binlogs MySQL. Cette technique permet de capturer précisément toutes les modifications (créations, mises à jour, suppressions) et de les rejouer sur Oracle avant la bascule définitive.

Calendrier

Une bascule maîtrisée sur deux week-ends

La finalisation s’est déroulée sur deux week-ends, limitant l’impact sur les utilisateurs :

  • Premier week-end : arrêt planifié, sauvegarde complète, lancement de la migration complète sur la base sauvegardée, premiers tests de validation
  • Second week-end : bascule définitive après validation de la migration complète, reconfiguration des clusters via Ansible, validation définitive.

Des procédures de retour arrière ont été prévues à chaque étape, sécurisant l’ensemble du processus.

Un projet mené avec succès

La migration de la GED CRIDF vers Oracle a été réalisée avec succès, sans perte de données et sans interruption de service pour les utilisateurs. Elle permet désormais à la Région Île-de-France de :

  • Bénéficier d’une infrastructure base de données alignée avec les standards SI
  • Préparer sereinement les futures migrations Alfresco et les évolutions s’appuyant sur les intégrations, toujours plus nombreuses, d’interfaces métier basées sur ADF
  • Sécuriser un patrimoine documentaire critique

Technologies : Alfresco  •  MySQL 8  •  Oracle 19c  •  Python  •  SQL*Loader  •  Ansible

Retour en haut