Migration de Base de Données Oracle

Préparez, migrez et optimisez vos schémas Oracle et votre code PL/SQL avec Visual Expert

Essayer Visual Expert


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).

Étape 1 : Évaluation du volume de code et d'objets

Objectif : établir un périmètre d'analyse clair et estimer la charge de travail de migration.

Défis

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.

Inventaire automatique du code et des objets

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.

En savoir plus

Inventaire de base de données avec comptage d'objets

Modélisation de base de données

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).

Diagramme Entité-Relation

En savoir plus

Étape 2 : Nettoyage du code

Objectif : éliminer les éléments inutilisés pour réduire la dette technique et les risques.

Défis

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.

Analyse des dépendances pour détecter le code mort

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.

Liste des composants Oracle inutilisés

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).

Tables inutilisées et suggestions de nettoyage

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.

En savoir plus

Étape 3 : Identifier les composants obsolètes à remplacer

Objectif : identifier les technologies dépréciées à remplacer avant la migration.

Défis

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.

Solutions Visual Expert

Analyse approfondie des dépendances

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).

  • Il permet de lister toutes les procédures, déclencheurs, fonctions, packages, sous-programmes et types qui référencent des objets obsolètes tels que les fonctions Oracle, packages, sous-programmes.
  • Il peut également lister les tables et colonnes basées sur un type déprécié, comme LONG ou les packages DBMS_XMLGEN etc.
    Alerte types de données LONG et LONG RAW dépréciés
  • Visual Expert inclut aussi un moteur d'inspection automatique de code, dont les règles alertent sur l'utilisation d'éléments obsolètes.

 

Suggestions de modernisation de conception

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 :

  • Certaines tables utilisent un identifiant composite au lieu d'un identifiant unique de séquence/identité.
  • Certaines relations ne sont pas déclarées par une contrainte (historiquement gérées par du code).
  • Peut-être que certains champs texte très volumineux et non indexés pourraient être convertis en CLOB ? ?

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.

 

Étape 4 : Analyse d'impact des modifications à effectuer

Objectif : anticiper toutes les conséquences des changements pour éviter les régressions.

Défis

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.

  • Par exemple : remplacer une fonction obsolète signifie modifier le code dans toutes les procédures qui l'appellent. Mais ces procédures peuvent à leur tour être appelées ailleurs. Il faudra vérifier les conséquences de toutes ces modifications.
  • De même, changer une colonne LONG en CLOB nécessitera de modifier les procédures qui manipulent cette colonne, et de vérifier les composants amont/aval (vues, interfaces, etc.).

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.

Solutions Visual Expert

Analyse d'impact interactive

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 ?

Analyse d'impact sur une colonne

En savoir plus

Visualisation des dépendances

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.

Matrice CRUD

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.

En savoir plus

Étape 5 : Implémentation des modifications

Objectif : appliquer les changements de manière cohérente et sécurisée.

Défis

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.

Solutions Visual Expert

Tableau de bord de suivi des modifications

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.

Comparaison de code et de schéma

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.

Outil de comparaison de code

En savoir plus

Étape 6 : Documentation technique de la base de données migrée

Objectif : générer automatiquement une documentation complète, à jour et utilisable.

Défis

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 :

  1. la structure de base de données (schémas, diagrammes),
  2. le dictionnaire de données (colonnes, types),
  3. le code PL/SQL (liste et description des modules, paramètres, appels),
  4. et éventuellement des comparaisons avant/après migration.

 

Solutions Visual Expert

Documentation automatique du code

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.

  • Pour chaque package/procédure/déclencheur, l'outil spécifiera : son code source formaté, une liste de ses paramètres, une explication, ainsi que ses références (ex : "cette procédure appelle telles tables, est appelée par tel autre objet..."). Ces références sont des liens hypertexte cliquables dans la documentation, la rendant navigable comme un site web.
  • Des rapports spécifiques peuvent aussi être générés : par exemple, une liste de tous les objets modifiés pendant la migration avec leur nouveau statut, ainsi qu'une matrice CRUD ou un diagramme d'appels pour illustrer les interactions entre composants.

En savoir plus

Documentation du modèle de données et logique métier

Visual Expert est également une ressource précieuse pour la documentation du modèle de données après la migration.

  • Une fois la migration terminée, il mettra à jour le diagramme entité-relation afin de produire une représentation visuelle actualisée de l'ensemble du système.
  • Ce diagramme peut être ajusté : par exemple, il peut être divisé en plusieurs sous-diagrammes thématiques, plus faciles à consulter. Chaque sous-diagramme peut couvrir un domaine fonctionnel (facturation, gestion client, etc.).
  • Après validation des diagrammes, Visual Expert offre la possibilité de les exporter en PDF ou en images haute résolution pour une intégration optimale dans la documentation finale.

En savoir plus

Expliquer et commenter le code avec des fonctions d'IA

Au-delà de ses capacités de documentation technique, Visual Expert permet également de :

  1. Expliquer l'objectif métier du code
  2. Décrire sa logique interne.
  3. Générer des commentaires dans le code

Visual Expert IA – Expliquer et commenter le code

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.

Étape 7 : Optimisation post-migration

Objectif : améliorer les performances et la maintenabilité de la base de données migrée.

Défis

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é ?

Solutions Visual Expert

Analyse des performances

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.

Temps d'exécution du graphique d'appels

En savoir plus

Qualité du code et optimisation

  • Visual Expert vérifie aussi la qualité du code et détecte certaines mauvaises pratiques affectant les performances (ex : utilisation de boucles imbriquées en PL/SQL, au lieu de jointures SQL).
  • Il détecte automatiquement les index manquants (colonnes de base de données sans index, mais néanmoins utilisées dans des clauses Where/Group by/Order by/Having dans les requêtes SQL), ralentissant inutilement l'exécution des requêtes SQL.
  • Enfin, Visual Expert peut être utilisé pour analyser les requêtes lentes qu'il a trouvées : le DBA peut afficher le plan d'exécution de la requête pour voir comment elle est traitée par Oracle (parcours d'index, scans complets, hash joins, tri, etc.). Ainsi, il peut rapidement passer de l'analyse à l'action pour les optimisations SQL.

Quand un objet ou une requête ralentit l'application, Visual Expert peut optimiser son code :

Visual Expert IA – Amélioration des performances

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.

Étape 8 : Surveillance continue post-migration avec Visual Expert

Objectif : maintenir la qualité du code PL/SQL et les performances sur le long terme.

Défis

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é ?

Solutions Visual Expert

Maintenance proactive

  • Analyse d'impact systématique avant chaque changement
    Il est recommandé d'effectuer systématiquement une analyse d'impact avant chaque changement significatif dans la base de données Oracle et le code PL/SQL. Cette pratique assure une prise en compte complète des dépendances et minimise les risques de régression.
  • Vérifications régulières des performances
    Vous pouvez surveiller les temps d'exécution des procédures et requêtes SQL pour détecter et traiter rapidement les nouveaux problèmes. Ils pourraient apparaître, par exemple, suite à des modifications de requêtes qui nécessiteraient la création de nouveaux index pour éviter une dégradation des performances. Visual Expert détectera et signalera ces cas au DBA qui pourra prendre les mesures nécessaires.

Contrôle qualité et résolution de problèmes

  • Vérification régulière de la qualité et sécurité du code
    Visual Expert peut automatiquement et périodiquement inspecter le code pour détecter l'apparition de problèmes de qualité ou de sécurité. Les équipes pourraient, par exemple, utiliser par habitude un type de données ou une fonction Oracle dépréciée. Ce contrôle régulier aidera à maintenir un niveau élevé de qualité et de sécurité dans le temps.
  • Tableau de bord d'inspection du code Visual Expert pour Oracle

    Résumé d'inspection automatique du code

  • Correction des problèmes trouvés dans le code
    Pour chaque problème trouvé dans le code, Visual Expert peut suggérer une solution potentielle
  • Correction des problèmes trouvés dans le code PL/SQL Oracle

  • Suivi documenté des changements de schéma et de code
    Visual Expert gardera une trace de tous les changements apportés au schéma et au code PL/SQL, rendant la gestion des versions et la traçabilité des changements beaucoup plus simples.

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.

Conclusion

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.

Tableau récapitulatif par étape

Étape du projet Fonctionnalités Visual Expert
1. Évaluation du volume - Calcul de métriques (lignes de code, objets)
- Inventaire par type d'objet
- Vue d'ensemble des éléments de l'application
- Génération automatique de diagrammes E/R (modèle de données)
- Analyse visuelle des zones complexes ou isolées
2. Nettoyage du code - Identification des objets inutilisés (non référencés)
- Identification des tables jamais accédées par le code

- Détection du code dupliqué, vide ou redondant
3. Détection d'éléments obsolètes - Vérification de l'utilisation de fonctions/types obsolètes
- Alertes via les règles d'analyse de code
- Identification automatique d'objets à moderniser
- Analyse du modèle E/R pour identifier les archaïsmes de conception
- Annotation du modèle pour définir les évolutions
4. Analyse d'impact - Analyse d'impact interactive (qui utilise un élément ?)
- Matrice CRUD (qui lit/écrit sur quelles tables ?)
- Diagrammes d'appels et de références croisées
5. Implémentation des changements - Vérification post-changement (tous les points couverts)
- Comparaisons schémas/code avant/après migration
6. Documentation technique - Génération automatique de documentation du code
- Génération de matrice CRUD - Génération de diagrammes d'appels
- Diagrammes E/R mis à jour pour documentation post-migration
- Export et création de sous-diagrammes de modèle de données
7. Optimisation post-migration - Analyse de performance du code (temps moyen, fréquence)
- Analyse des chaînes d'appels de fonctions - Détection d'index manquants
- Analyse et optimisation des requêtes SQL (plan d'exécution)
- Modèle mis à jour pour refléter les optimisations
8 - Surveillance continue post-migration - Analyse d'impact systématique avant chaque changement
- Vérifications régulières des performances
- Vérifications régulières de qualité
- Documentation des évolutions de schéma et de code

Fonctionnalités Oracle Dépréciées et Non Supportées

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)