webleads-tracker

Pourquoi & Comment migrer d’Oracle 11g/12c vers Oracle 19c ?

Vous êtes ici

Pourquoi & Comment migrer d’Oracle 11g/12c vers Oracle 19c ?

Données

0 Commentaires

Oracle Database 11g n’est plus supportée et la fin du support de la version 12c arrive à grands pas. Envisagez dès maintenant une migration vers Oracle 19c qui offre de nombreuses nouveautés. Il y a toutefois plusieurs points de vigilance et plusieurs méthodes de migration. Faisons le point.

Le 16 juin dernier, Oracle a mis à jour la feuille de route des versions de son logiciel de base de données Oracle Database.

La version 11.2.0.4 finira son support au 31 Décembre 2020. Oracle propose à ses clients deux ans supplémentaires d’accompagnement payant par ses services ACS (Advanced Customer Services) afin de permettre d’effectuer les migrations de ces bases de données (gestion des correctifs de bugs de niveau 1, bugs de sécurité, planification des mises à jour et un gestionnaire de compte technique).

Le choix de la version à utiliser doit se porter vers une version dite « Long Term », donc avec une durée de support la plus longue.

Oracle a défini dans cette note deux notions de version :

  • Les versions « Innovation Release », qui sont donc des versions avec une durée de support réduite, comme les versions 12.2.0.1 ou 18C
  • Les versions « Long Term Release », comme la version 19c, qui sera supportée sans surcoût jusqu’en Avril 2024 avec la possibilité d’accéder à un support étendu payant de 3 ans supplémentaires.

Pour rappel, Oracle a changé la dénomination de ses versions en les nommant en fonction de l’année de sortie, mais une version 18C est une version 12.2.0.2 et la 19c est une version 12.2.0.3. Ceci est important vis-à-vis de la conformité des applications.

Les nouveautés et les bénéfices d’Oracle Database 19c

La version 19c sera la dernière version d’Oracle Database permettant de créer des bases en mode non conteneur. A partir de la 20c toutes les bases de données Oracle seront donc de ce type.

Ce mode conteneur nommé Multitenant, permet de consolider plusieurs bases de données dans une seule base, tout en gardant sa granularité en termes de sécurité, sauvegarde… Il est possible depuis la version 19.3 d’utiliser 3 bases de données enfichées (Pluggable Database) sans acquérir l’option payante Multitenant. Comme toute nouvelle version elle apporte tout un ensemble de nouveautés :

  • Redirection des ordres DML dans une base de secours avec Active Data Guard
  • Flashback de la base de secours automatique lors d’un flashback de la base primaire
  • Indexation automatique (avec les bases dans le Cloud d’Oracle ou les Exadata)
  • Statistiques en temps réel
  • Tables partitionnées hybrides (en partie en base et en partie sur fichiers plats)
  • Duplication des bases de données avec DBCA en mode silencieux, la relocalisation d’une PDB vers un autre CDB avec DBCA
  • Installation du client Oracle par le biais d’une image
  • Mise en quarantaine de requête SQL
  • Analyse de l’usage des privilèges
  • Etc.

L’ensembles des nouveautés est consultable dans la documentation Oracle.

Actuellement, la version 19c en mode conteneur est la meilleure option pour effectuer une migration depuis les versions 11g, 12cR1 ou 12cR2.

Migration vers Oracle 19c : les points de vigilance

La migration d’une base de données est toujours un moment de stress, à la fois pour le DBA mais aussi pour les utilisateurs des applications. Il est conseillé d’effectuer la migration à isopérimètre, puis, une fois l’application stabilisée, d’essayer de mettre en œuvre certaines nouveautés.

Les risques les plus importants sont :

  • La perte ou la transformation d’informations, notamment dans le cas d’un changement de jeu de caractères ;
  • Les requêtes applicatives pouvant ne pas être gérées de la même façon du fait des changements de l’optimiseur Oracle (mauvais plan, mauvais résultats …) ;
  • Les applications utilisant des fonctionnalités dé-supportées par Oracle comme les paramètres UTL_FILE_DIR, 07_DICTIONARY_ACCESS, STANDBY_ARCHIVE_DEST ou Oracle Warehouse Builder qui n’est plus installable avec l’assistant d’installation, Oracle Multimédia, Oracle Streams, RAC en Standard Edition 2, Oracle Advanced Replication, certaines fonctionnalités de XML DB, Enterprise Manager Database Control.

Une vérification de conformité doit être effectuée en utilisant la documentation Oracle.

De nombreux tests devront donc être effectués afin de valider que l’application fonctionne correctement avant la vraie migration des bases de production. Oracle propose un outil nommé Real Application Testing qui permet la capture des activités d’une base de production afin de les rejouer dans la nouvelle version afin de valider son comportement.

Il est aussi envisageable de prévoir une migration de sa base de données actuelle à la fois en termes de version et en termes de localisation en utilisant une base de données dans le Cloud d‘Oracle. Pour se faire, Oracle propose un outil nommé ZDM (Zero Downtime Migration) permettant de déplacer sa base de données dans son cloud avec un temps très court d’interruption de service. Les bases dans le cloud d’Oracle peuvent être autogérées qui utilisent la 19c (Autonomous DataWarehouse, Autonomous Transaction Processing), ou des bases stockées 11G, 12C, 18C ou 19c dans un service Cloud de type Bare Metal ou Virtualisé. La base une fois créée dans le cloud d’Oracle pourra être migrée de la même façon que celles hébergées chez le client.  

Plusieurs méthodes de migration vers Oracle Database 19c

En termes de migration vers la version 19c, il est possible d’utiliser plusieurs méthodes. Nous avons choisi de vous en présenter trois parmi les plus fréquemment utilisées :

  • La mise à jour directe est une solution simpliste, soit via Database Upgrade Assistant (DBUA), soit par AutoUpgrade (cf. le blog de Mike Dietrich), soit manuellement. Elle impose que le système d’exploitation utilisé soit compatible avec les deux versions (par exemple la version 11G est installable sur Redhat 5 et 6, mais la version 19c n’est possible que sur Redhat 7 et 8). De plus, en fonction des versions sources, elle n’est pas toujours possible : Tableau des compatibilité pour effectuer une mise à jour directe
  • La mise à jour avec migration est possible avec 4 solutions en fonction de la version de la base source et des changements annexes. Chaque solution est plus ou moins complexe et rapide :Tableau comparatifs des méthodes de migration vers Oracle 19c

Méthode 1 : DBUA ou Mise à jour avec utilitaires en ligne de commande

La façon la plus simple de passer à Oracle Database 19c est de mettre à niveau votre base de données existante en utilisant DBUA ou les scripts de mise à niveau en ligne de commande.

Ce sont deux variantes de la même méthode, différentes principalement par leurs interfaces utilisateur. Parce que ces méthodes agissent sur votre base de données sans créer de copie ou une nouvelle instance, on parle parfois de mise à niveau « en place ». L'Assistant de mise à niveau de la base de données est une interface utilisateur graphique (GUI) qui vous guide tout au long du processus de mise à niveau de la base de données et présente une série d'écrans qui vous permettent de spécifier différents options. Pendant le processus de mise à niveau, DBUA appelle les mêmes scripts que ceux utilisés en ligne de commande. Il effectue également des étapes de validation avant la mise à niveau et peut automatiser les tâches après celle-ci. DBUA peut réduire considérablement la quantité d'effort manuel requis pour une mise à niveau de base de données mais offre moins de flexibilité qu’en ligne de commande.

Voici les étapes pour effectuer une migration par ligne de commande :

Phase de Pré-migration:

  1. Exécutez le nouvel outil de Pré-Migration (preupgrade.jar), qui valide la préparation de la base à migrer ;
  2. Exécutez le script SQL preupgrade_fixups.sql pour résoudre automatiquement les problèmes détectés par l’outil de Pré-Migration ;
  3. Effectuez toutes les étapes de correction manuelle identifiées par l’outil de Pré-Migration.

Phase de Migration :

  1. Exécutez l’utilitaire de mise à jour en mode parallèle (dbupgrade)

Phase de post-Migration

  1. Exécutez le script SQL postupgrade_fixups.sql pour résoudre automatiquement les problèmes détectés par l’outil de Pré-Migration, ne pouvant être adressés qu’une fois la mise à jour effectuée ;
  2. Vérifiez les fichiers journaux générés par l’utilitaire dbugrade ;
  3. Recompilez les objets invalides en exécutant utlrp.sql.

Branchement dans un Conteneur Database (CDB)

  1. Démarrez la base de données en mode READ ONLY et utiliser la procédure DBMS_PDB.DESCRIBE() pour générer un fichier descriptif XML de votre base de données ;
  2. Une fois connecté à la CDB, exécutez la commande CREATE PLUGGABLE DATABASE pour migrer votre base « non-CDB » dans une PDB (Pluggable Database) ;
  3. Exécutez le script SQL noncdb_to_pdb.sql pour convertir la base source « non-CDB » en une PDB.

Méthode 2 : Transport complet de la base de données ou par tablespace

Les tablespaces transportables vous permettent de copier un ensemble de tablespace d'une base de données à une autre. Cela peut être beaucoup plus rapide que l'exportation et l'importation de données à partir de ceux-ci car ils sont copiés en tant que fichiers physiques sans qu'il soit nécessaire de lire les données contenues dans ces fichiers, telles que les lignes ou les index.

Cependant, en plus de copier les tablespaces, les métadonnées décrivant les objets dans la base de données source doivent être déplacées vers la nouvelle base de données par l'exportation / l'importation effectuée via Data Pump.

Les tablespaces transportés peuvent être copiés dans une autre base de données qui peut se trouver sur une plate-forme ayant un système d'exploitation différent ou exécuter une version différente du logiciel Oracle Database. Cela fourni un moyen relativement rapide de migrer et de mettre à niveau une base de données en une seule opération.

Par le passé, cette méthode pouvait être assez compliquée, car le DBA était responsable du déplacement des métadonnées telles que les procédures, les packages, les contraintes, etc.

À partir d'Oracle Database 19c, la fonction d'exportation/importation de transport complet de la base de données combine à la fois la vitesse et un transport des métadonnées plus simple. Cette méthode peut soit utiliser la copie des fichiers d’export ou utiliser un lien inter base de données entre la base source et la base cible.

Voici un exemple de déplacement complet de tablespaces :

  1. Mettez le/les tablespaces contenant les données de l’application en mode READ ONLY ;
  2. A partir de la 11.2.0.3, l’export complet contient à la fois les métadonnées et les données pouvant être dans des tablespaces non transportables (SYSTEM, SYSAUX). Pour les versions 11g, il faut préciserla version d’arrivée soit 12 :
    expdp \”sys/xxx as sysdba\” DIRECTORY=DUMP_DIR DUMPFILE=sourcefulltts.dmp VERSION=12 FULL=Y TRANSPORTABLE=ALWAYS EXCLUDE=TABLE_STATISTICS,INDEX_STATISTICS LOGFILE=journalexport.log
  3. Copiez avec des utilitaires systèmes les fichiers des tablespaces sur la plateforme d’arrivée ainsi que le fichier d’export (sourcefulltts.dmp) ;
  4. Créez une base en mode CDB avec une PDB qui servira pour héberger la base transportée ;
  5. Importez la base dans la PDB cible :
    impdp pdbadmin/xxx@PDBCIBLE DIRECTORY=DUMP_DIR DUMPFILE= sourcefulltts.dmp LOGFILE=journalimport.log TRANSPORT_DATAFILES='/u02/oradata/CDB/PDBCIBLE/tbs1_1.dbf ' TRANSPORT_DATAFILES='/u02/oradata/CDB/PDBCIBLE/tbs2_1.dbf '
  6. Remettez les tablespaces en mode READ WRITE sur les bases source et cible.

Méthode 3 : Exportation et importation des données

Cette méthode est la plus ancienne des méthodes de migration de bases de données Oracle. Elle peut s’effectuer via les utilitaires exp/imp ou expdp/impdp, en fonction des versions sources et cibles. Elle a l’avantage de permettre le changement entre n’importe quelle version, et de/vers n’importe quel système d’exploitation. Elle permet aussi de défragmenter la base de données puisque l’ensemble des objets sont recréés. La durée est cependant la plus longue puisqu’elle est liée à la volumétrie de la base de données.

Faites-vous accompagner pour une migration sans stress

Afin de sécuriser vos bases de données, envisagez dès à présent une migration vers Oracle 19c. Vous profiterez ainsi d’une technologie supportée, plus sécurisée, performante et vous offrant de nombreuses nouveautés.

Nous pouvons vous accompagner pour réaliser une étude préparatoire afin d’analyser la compatibilité de votre système actuel avec une version Oracle Database plus récente, vérifier la conformité vis-à-vis des règles Oracle, tester le fonctionnement des applications et effectuer ladite migration on premise ou dans le cloud. Enfin, nous pouvons maintenir vos bases de données en condition opérationnelle avec des garanties fortes allant jusqu’à 99,9% de disponibilité en 24/7.

 

Besoin d'un expert ?

Pour toute information complémentaire ou si vous avez besoin d'accompagnement pour la mise en place / migration de vos environnements, contactez-nous.

Je contacte Digora

Photo de Adrew Ruiz.

 

Article rédigé par Pierre Labrousse, Consultant DBA Oracle chez Digora

Pierre Labrousse, Consultant DBA Oracle

Commentaires (0)

Laisser un commentaire

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
CAPTCHA
Captcha, confirmez l'envoi du formulaire
Image CAPTCHA
Saisir les caractères affichés dans l'image.