La migration d'une base de données Oracle vers une version plus récente est un projet complexe. Il ne s'agit pas seulement de transférer des données : vous devez également adapter un volume important de code PL/SQL, nettoyer les éléments obsolètes qui se sont accumulés au fil du temps, et veiller à n'introduire aucune régression. Les développeurs et DBA Oracle doivent donc faire preuve d'une vigilance particulière à chaque étape du projet.
Heureusement, l'utilisation d'outils spécialisés permet d'alléger considérablement cette tâche. Visual Expert met à votre disposition une suite complète d'outils pour vous accompagner dans chaque étape d'une migration Oracle en toute sérénité. Visual Expert est un outil d'analyse statique de code PL/SQL, idéal pour explorer, comprendre et documenter le code existant.
Dans cet article, nous passerons en revue les étapes d'une migration Oracle, et pour chacune d'entre elles, nous analyserons les difficultés rencontrées et comment cet outil aide à les surmonter, grâce à des fonctionnalités spécifiques.
Prenons l'exemple d'une base de données Oracle 11g contenant principalement du code PL/SQL interne (procédures stockées, déclencheurs, etc.), migrée vers Oracle 19c (ou 21c).
La première étape de tout projet de migration consiste à évaluer l'ampleur du travail. Il faut inventorier tous les objets de base de données (tables, vues, index...) ainsi que tout le code PL/SQL (packages, procédures, fonctions, déclencheurs). Cette estimation de volume sert à planifier la charge de travail et les ressources nécessaires.
Sans outils, cela revient à parcourir manuellement le catalogue Oracle et le code PL/SQL, ce qui est fastidieux et sujet à erreurs. Une base de données Oracle peut contenir des milliers d'objets et des millions de lignes de code. Obtenir une vision globale précise dès le départ constitue un défi majeur pour les architectes et chefs de projets.
Une fois la base de données analysée, l'outil calcule des métriques détaillées du code : nombre total de lignes de code PL/SQL (en distinguant commentaires et instructions réelles), nombre de procédures et fonctions, nombre de packages, déclencheurs, etc. Il liste aussi les objets par type.
Visual Expert peut également être utilisé pour modéliser la base de données existante. Il génère automatiquement un diagramme entité-relation qui donne une vision de la complexité du modèle de données : nombre de tables et de relations, répartition en sous-domaines fonctionnels, etc. Un architecte pourra ainsi identifier si certaines parties du modèle sont très denses (nombreuses tables interconnectées) ou isolées. Il peut ainsi évaluer quelles zones du modèle seront les plus critiques à migrer (une zone plus dense implique souvent plus de logique associée).
Avant de migrer, il est recommandé de nettoyer et faire le ménage dans le code et les objets : pourquoi migrer des éléments qui ne sont plus utilisés (anciennes procédures qui ne sont plus appelées, tables temporaires ou de test oubliées, vues ou synonymes obsolètes, etc.) vers la nouvelle version ?
Les migrer consommerait du temps inutilement et augmenterait les risques (ex : un package obsolète peut contenir du code incompatible avec 19c).
Cependant, détecter manuellement les objets inutilisés est très difficile dans une grande base de données. Les développeurs hésitent à supprimer du code par crainte de casser des fonctionnalités cachées. Par précaution, ils migrent souvent tout, au prix d'un effort inutile et d'une dette technique plus lourde.
Visual Expert aide à cette tâche en listant le "code mort" dans la base de données Oracle. Avec ces informations, l'équipe peut décider quels objets ne seront pas migrés vers Oracle 19c, éliminant ainsi les éléments inutiles.
Une analyse statique complète des dépendances permet d'identifier les objets PL/SQL potentiellement inutilisés (ceux jamais référencés/invoqués par d'autres procédures, déclencheurs, ou applications externes connues).
L'outil peut aussi repérer les tables jamais utilisées par le code (jamais référencées par des requêtes SELECT/INSERT/UPDATE/DELETE), suggérant qu'elles ne sont pas (ou plus) exploitées par l'application.
L'outil signale aussi d'autres éléments à nettoyer : procédures vides, code dupliqué à consolider, etc.
Outre les éléments inutilisés, l'équipe devra gérer les éléments nécessaires mais obsolètes. Au fil du temps, Oracle a déprécié certaines fonctionnalités et a introduit de nouvelles. Par exemple, la fonction DBMS_JOB a été remplacée par DBMS_SCHEDULER et n'est plus recommandée ; certains types de données comme LONG ont été rendus obsolètes au profit de CLOB/BLOB. Il est donc recommandé de remplacer ces éléments pour éviter de conserver des technologies legacy et non supportées.
La difficulté réside dans la détection systématique de toutes les occurrences où ces éléments obsolètes sont utilisés dans le schéma de base de données et le code. Un oubli peut facilement passer inaperçu (ex : une colonne de type LONG cachée dans une table technique). Les développeurs et DBA doivent donc être minutieux dans leur détection pour planifier les remplacements nécessaires. Scanner manuellement des milliers de lignes de code ou parcourir le dictionnaire Oracle n'est pas une solution réaliste. Des outils sont donc nécessaires.
Visual Expert excelle dans cette tâche et l'analyse statique complète des dépendances permet d'identifier les objets PL/SQL potentiellement inutilisés (ceux jamais référencés/appelés par d'autres procédures, déclencheurs, ou applications externes connues).
En modélisant les données, Visual Expert aide à identifier les archaïsmes de conception qui devraient être modernisés pour profiter des améliorations apportées par Oracle. Par exemple :
Ainsi, Visual Expert fournit matière à réflexion sur les changements structurels à effectuer en plus des changements de code. Le diagramme peut ensuite être annoté avec les modifications prévues (nouvelles relations, nouveaux types). Ces éléments seront utilisés dans l'étape suivante d'analyse d'impact.
Visual Expert agit comme un scanner de compatibilité, analysant de manière exhaustive le code existant conformément aux bonnes pratiques, pour éviter les mauvaises surprises lors des tests.
Une fois que vous savez quoi changer (fonctions à remplacer, colonnes à modifier, etc.), vous devez évaluer où ces changements auront un effet. C'est l'analyse d'impact, cruciale pour éviter de provoquer des régressions lors de la migration.
Sans outil, cartographier ces impacts est laborieux : il faut suivre manuellement le fil de multiples dépendances (qui appelle quoi, qui utilise quelle table/colonne). La crainte de l'équipe est de manquer une référence, et de découvrir le problème en test ou en production, dans un morceau de code qui n'a pas été mis à jour.
Visual Expert répond aux questions du type "Que se passe-t-il si je change X ?" avec une analyse d'impact interactive :
Si vous sélectionnez un objet (une fonction ou une colonne, par exemple) et lancez l'analyse d'impact, Visual Expert liste tous les objets qui le référencent.
Par exemple : "Si je modifie la colonne 'customer_name', quelles procédures, déclencheurs, vues et packages seront affectés ?" ou "Qui appelle la fonction XYZ ? Quels scripts la référencent ?
L'outil peut représenter les dépendances sous forme de diagrammes E/R ou de matrices. Par exemple, sa matrice CRUD croise les données avec les fonctions qui les manipulent, en précisant le type d'opération (Create/Read/Update/Delete) effectuée par chaque procédure.
En quelques secondes, Visual Expert accomplit ce qui demanderait des heures de travail manuel. Ainsi, l'équipe prépare chaque changement (en estimant le temps nécessaire, en listant les objets à modifier) et élimine par la même le risque d'oubli : aucune dépendance cachée ne sera ignorée.
Après la phase d'analyse vient la phase de mise en œuvre (refactoring de code, modifications de schéma).
Bien que Visual Expert soit un outil d'analyse, et non d'édition (les modifications seront effectuées avec votre éditeur de code standard), il fournit néanmoins une assistance précieuse pendant l'implémentation.
L'équipe peut l'utiliser comme tableau de bord pour le suivi des modifications. Après avoir effectué un changement, le nouveau code peut être analysé pour vérifier qu'aucune occurrence de l'ancien élément ne subsiste. Cette vérification qualité peut être effectuée périodiquement durant la phase d'implémentation.
Visual Expert offre aussi une fonction de comparaison de code/schéma qui peut être utilisée entre le schéma initial et le schéma migré. L'outil comprend la structure du code et des objets, et génère un rapport structuré sur les différences : objets supprimés ou ajoutés, changements dans le code des procédures, changements dans les types de colonnes, etc. Cette check-list permet de s'assurer que chaque point prévu a été traité, et de détecter tout écart involontaire.
Une fois la migration terminée, il faudra produire une documentation technique à jour. Celle-ci servira à la fois d'inventaire des éléments en place pour la maintenance, et de bilan des changements effectués.
Mais documenter manuellement un schéma et des milliers de lignes de code n'est pas réaliste, et le temps manque souvent en fin de projet. Cette tâche est chronophage, peu rentable et sujette à erreurs. Il est donc essentiel d'automatiser la documentation.
Idéalement, la documentation doit inclure :
Visual Expert génère automatiquement la documentation du code. À partir de son référentiel d'analyse, il peut produire des pages HTML qui décrivent l'application en détail. Les nouveaux venus dans l'équipe n'auront pas à deviner comment fonctionne le code ; ils pourront consulter ce référentiel.
Visual Expert est également une ressource précieuse pour la documentation du modèle de données après la migration.
Au-delà de ses capacités de documentation technique, Visual Expert permet également de :
En combinant une vue d'ensemble du modèle de données, une documentation détaillée du code, et des explications fonctionnelles, Visual Expert couvre tous les aspects de la base de données.
Grâce à ces outils, l'effort requis est réduit au minimum, permettant ainsi d'améliorer la qualité globale du projet sans surcharger l'équipe.
Une migration réussie ne s'arrête pas à la montée de version. La base de données doit aussi fonctionner de manière optimale. Cependant, passer à une version supérieure peut révéler des problèmes jusqu'alors cachés. La migration est aussi l'occasion de s'attaquer aux problèmes de performance qui n'avaient pas été traités dans la version précédente (index manquants, requêtes lentes, etc.).
Ces optimisations post-migration sont parfois négligées par manque de temps. Il faut donc identifier les plus urgentes : parmi les centaines de requêtes et procédures, lesquelles optimiser en priorité ?
Visual Expert intègre un module d'optimisation des performances qui collecte et analyse les statistiques d'exécution générées par Oracle. Corriger ces problèmes post-migration améliorera les performances et la maintenabilité de la base de données.
Quand un objet ou une requête ralentit l'application, Visual Expert peut optimiser son code :
Cette combinaison de fonctions améliorera les performances de l'application, que ce soit dans le cadre d'une approche préventive globale, ou pour éliminer spécifiquement certains goulots d'étranglement.
Vous pouvez aussi utiliser Visual Expert pour mesurer les performances avant et après migration, afin d'évaluer l'impact réel des optimisations que vous avez effectuées.
Une fois la migration terminée, il est essentiel de préserver les gains techniques. Visual Expert aide à sécuriser, documenter et contrôler l'évolution des schémas Oracle et du code PL/SQL dans le temps.
Ces optimisations post-migration sont parfois négligées par manque de temps. Il faut donc identifier les plus urgentes : parmi les centaines de requêtes et procédures, lesquelles optimiser en priorité ?
Résumé d'inspection automatique du code
Cette surveillance continue réduit les coûts de maintenance et sécurise les évolutions futures, permettant aux équipes de se concentrer davantage sur les améliorations fonctionnelles post-migration.
La migration d'une base de données Oracle 11g vers 19c/21c est un projet complexe qui peut être grandement simplifié avec les bons outils. Avec Visual Expert, les équipes de développement et d'administration ont accès à une boîte à outils complète couvrant l'analyse de code, la gestion de schéma, la modélisation et la documentation.
Chaque étape du processus de migration est facilitée : identification précise du périmètre, nettoyage, adaptation aux nouvelles fonctionnalités, modifications contrôlées, documentation technique et optimisation continue.
Après la migration initiale, Visual Expert continue de fournir une assistance précieuse avec des analyses d'impact régulières, des vérifications de performance et des contrôles périodiques de qualité du code.
Ces fonctionnalités garantissent la stabilité, la qualité et les performances de la base de données Oracle sur le long terme, et assurent un retour sur investissement durable pour le projet de migration.
En combinant Visual Expert avec des outils d'édition de code, et avec une gestion rigoureuse des étapes du projet, les équipes techniques peuvent mener à bien des migrations ambitieuses tout en réduisant les risques, en sécurisant les développements, et en facilitant la future maintenabilité de leur base de données Oracle.
Restez informé sur les fonctionnalités Oracle qui sont dépréciées ou supprimées dans les versions récentes. Utilisez cette liste pour anticiper les changements nécessaires lors de vos projets de migration.
Explorer la liste complète des fonctionnalités Oracle dépréciées et non supportées (18c - 23c)