Remarques :

Migration d'une base de données non Conteneur 19c sur site vers une base de données Conteneur Oracle Database 23ai

Introduction

Zero Downtime Migration (ZDM) 21.5 introduit la migration physique avec une mise à niveau en cours, permettant des transitions transparentes pour les bases de données Oracle. Cette fonctionnalité prend en charge la migration des bases de données Oracle 11.2.0.4 et 12c vers les bases de données Oracle 19c, ainsi que les migrations des bases de données source 19c vers Oracle Database 23ai.

Ce tutoriel explique comment le moniteur ZDM facilite la migration et la conversion d'une base de données 19c non Conteneur source en base de données Conteneur lors d'une mise à niveau au niveau cible. Le moniteur ZDM effectue une migration initiale à l'aide d'une base de données cible non Conteneur temporaire pour que les clients puissent migrer et mettre à niveau une base de données non Conteneur. Une fois cette phase initiale terminée, le moniteur ZDM tire parti de la mise à niveau automatique pour effectuer la conversion en colocatif et mettre à niveau la base de données vers la version souhaitée.

Ce tutoriel est spécialement conçu pour la migration de bases de données non Conteneur sur site exécutant la version 19c d'une plate-forme Linux vers la base de données Conteneur Oracle Database 23ai.

Vous trouverez ci-dessous les propriétés et les détails des environnements source et cible.

Illustration présentant les détails source et cible

Objectifs

Prérequis

Tâche 1 : Préparer et installer le serveur ZDM

  1. Provisionnez un hôte de calcul dédié pour l'installation du logiciel ZDM. L'hôte sur lequel le logiciel ZDM est installé est appelé hôte de service ZDM. Les prérequis suivants doivent être respectés sur l'hôte :

    • Oracle Linux 8 et taille de volume d'initialisation de 200 Go.
    • 100 Go d'espace de stockage libre.
    • Aucune instance Oracle Grid Infrastructure ne s'exécute dessus.
    • Connexion possible aux bases de données source et cible (serveurs).
  2. Connectez-vous à l'hôte ZDM à l'aide de putty.

  3. Exécutez la commande suivante pour étendre le système de fichiers afin de rendre les 200 Go disponibles.

    [opc@zdm ~]$ sudo su -
    [root@zdm ~]# df -h /
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        39G  3.2G   36G   9% /
    [root@zdm ~]# /usr/libexec/oci-growfs -y
    [root@zdm ~]# df -h /
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3       192G  3.2G  189G   2% /
    
  4. Créez un groupe, un utilisateur et les répertoires requis en tant qu'utilisateur root à l'aide de la commande suivante.

    [root@zdm ~]# groupadd zdm
    [root@zdm ~]# useradd -g zdm zdmuser
    [root@zdm ~]# mkdir -p /home/zdmuser/zdminstall
    [root@zdm ~]# mkdir /home/zdmuser/zdmhome
    [root@zdm ~]# mkdir /home/zdmuser/zdmbase
    [root@zdm ~]# chown -R zdmuser:zdm /home/zdmuser/
    
  5. Installez les packages logiciels requis en tant qu'utilisateur root à l'aide de la commande suivante.

    [root@zdm ~]# yum install oraclelinux-developer-release-el8 libnsl perl unzip glibc-devel expect libaio ncurses-compat-libs ncurses-devel numactl-libs openssl mlocate bind-utils
    
  6. Téléchargez le logiciel ZDM version 21.5 et copiez le fichier zip sur l'hôte ZDM dans le répertoire /home/zdmuser/zdminstall/. Remplacez le propriétaire du fichier ZIP par zdmuser en tant qu'utilisateur root à l'aide de la commande suivante.

    [root@zdm ~]# chown zdmuser:zdm /home/zdmuser/zdminstall/zdm21.5.zip
    
  7. Installez le logiciel ZDM en tant que zdmuser à l'aide de la commande suivante.

    [zdmuser@zdm ~]$ cd /home/zdmuser/zdminstall/
    [zdmuser@zdm zdminstall]$ unzip zdm21.5.zip
    
    [zdmuser@zdm zdminstall]$ ZDMHOME=/home/zdmuser/zdmhome
    [zdmuser@zdm zdminstall]$ ZDMBASE=/home/zdmuser/zdmbase
    
    [zdmuser@zdm zdminstall]$ /home/zdmuser/zdminstall/zdm21.5/zdminstall.sh setup oraclehome=/home/zdmuser/zdmhome oraclebase=/home/zdmuser/zdmbase ziploc=/home/zdmuser/zdminstall/zdm21.5/zdm_home.zip -zdm
    ZDM service setup finished successfully...
    
  8. Exécutez la commande suivante pour démarrer ZDM et vérifier le statut en tant que zdmuser.

    [zdmuser@zdm ~]$ $ZDMHOME/bin/zdmservice start
    Return code is 0
    Server started successfully.
    [zdmuser@zdm ~]$ $ZDMHOME/bin/zdmservice status
    ---------------------------------------
    		Service Status
    ---------------------------------------
    Running:       true
    
  9. Exécutez la commande suivante afin de créer une paire de clés SSH pour zdmuser. Elle sera utilisée ultérieurement pour se connecter aux serveurs de base de données source et cible à l'aide de SSH. Conservez les valeurs par défaut.

    [zdmuser@zdm ~]$ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/zdmuser/.ssh/id_rsa):
    Created directory '/home/zdmuser/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/zdmuser/.ssh/id_rsa.
    Your public key has been saved in /home/zdmuser/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:giU7jz/8Z1VPiS9Ds/gfokHdevpm0dk59fPYEHRChs4
    zdmuser@zdmhost
    The key's randomart image is:
    
  10. Créez un jeton d'authentification pour l'utilisateur OCI à partir de la page Détails de l'utilisateur.

    Cliquez sur Jetons d'authentification, Générer un jeton, saisissez la description et cliquez sur Générer un jeton.

    Remarque : Copiez ce jeton pour vos enregistrements car il ne sera plus affiché.

    Illustration de la création d'un jeton d'authentification

  11. Exécutez la commande suivante pour installer l'outil d'interface de ligne de commande Oracle Cloud Infrastructure (interface de ligne de commande OCI) en tant que zdmuser, qui sera utilisé pour accéder aux ressources OCI. Par exemple, copiez le fichier dump Data Pump dans OCI Object Storage.

    [zdmuser@zdm ~]$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
    

    Remarque : l'installation de l'interface de ligne de commande OCI nécessite l'OCID utilisateur, l'OCID de location, la région d'origine, l'utilisation de ces valeurs conformément à votre location cloud et la conservation des autres valeurs de paramètre par défaut.

    [zdmuser@zdm ~]$ oci setup config
    
  12. Exécutez la commande suivante pour télécharger la clé publique de signature d'API vers l'utilisateur OCI dans la location cloud à partir de zdmhost.

    [zdmuser@zdmhost ~]$ cat /home/zdmuser/.oci/oci_api_key_public.pem
    -----BEGIN PUBLIC KEY-----
    **********
    -----END PUBLIC KEY-----
    

    Accédez à la console OCI, accédez à la page Détails de l'utilisateur, cliquez sur Clés d'API et sur Ajouter une clé d'API. Sélectionnez Coller la clé publique, entrez la sortie de la commande ci-dessus et cliquez sur Ajouter.

    Illustration présentant l'ajout d'une clé d'API

  13. Exécutez la commande suivante pour créer un bucket OCI Object Storage standard dans la location OCI à l'aide de l'interface de ligne de commande OCI ou de la console OCI.

    [zdmuser@zdm ~]$ oci os bucket create --compartment-id ocid1.compartment.oc1.....lh4lfamxdrpuxg3x……… --name zdmbucket
    
  14. Connectivité de zdmhost aux serveurs de base de données source et cible : copiez la clé SSH de zdmhost en tant que zdmuser vers la source et la cible, telles que créées dans la tâche 1.9.

    #on ZDM host as zdmuser
    [zdmuser@zdm ~]$ cat .ssh/id_rsa.pub
    #on the source database host as user opc
    [opc@sourcedb ~]$ vi .ssh/authorized_keys
    #insert the public key and save the changes
    [opc@targetdb ~]$ vi .ssh/authorized_keys
    #insert the public key and save the changes
    
  15. Résolvez les noms d'hôte de la base de données source et de la base de données cible vers zdmhost en copiant le nom d'hôte, l'adresse IP et le nom de domaine qualifié complet vers /etc/hosts sur zdmhost en tant qu'utilisateur root.

Tâche 2 : exécuter des prévérifications dans les bases de données source et cible

  1. Exécutez les commandes suivantes pour créer le fichier ORACLE_HOME sur l'instance Oracle Base Database Service cible avec la même version que la source.

    [root@tgtzdm ~]# dbcli list-dbhomes
    
    ID                                       Name                 DB Version                               Home Location                                 Status
    ---------------------------------------- -------------------- ---------------------------------------- --------------------------------------------- ----------
    c548b052-64b7-4257-bfdc-d7c201a430ab     OraDB23000_home1     23.5.0.24.07                             /u01/app/oracle/product/23.0.0.0/dbhome_1     Configured
    
    [root@tgt23ai ~]# dbcli create-dbhome -v 19.23
    
    Job details
    ----------------------------------------------------------------
    					ID:  a63db258-7ffc-4dee-b8e5-5accf223e39b
    			Description:  Database Home creation with Id : db1b4bb8-2ed0-4c0f-ade9-a656f21cf808
    				Status:  Created
    				Created:  September 19, 2024 at 3:22:48 PM IST
    			Progress:  0%
    				Message:  Create Database Home
    			Error Code:
    
  2. Exécutez la commande suivante pour valider la création du répertoire de base de base de données.

    [root@tgt23ai ~]# dbcli describe-job --jobid a63db258-7ffc-4dee-b8e5-5accf223e39b
    
    Job details
    ----------------------------------------------------------------
    					ID:  a63db258-7ffc-4dee-b8e5-5accf223e39b
    			Description:  Database Home creation with Id : db1b4bb8-2ed0-4c0f-ade9-a656f21cf808
    				Status:  Success
    				Created:  September 19, 2024 at 3:22:48 PM IST
    			Progress:  100%
    				Message:  Create Database Home
    			Error Code:
    
    Task Name                                                                Start Time                          End Time                            Status
    ------------------------------------------------------------------------ ----------------------------------- ----------------------------------- ----------
    Database home creation                                                   September 19, 2024 at 3:22:49 PM IST September 19, 2024 at 3:27:40 PM IST Success
    
    
    [root@test23ai ~]# dbcli list-dbhomes
    
    ID                                       Name                 DB Version                               Home Location                                 Status
    ---------------------------------------- -------------------- ---------------------------------------- --------------------------------------------- ----------
    43247858-4ff6-4fcb-85f2-09d453d863bf     OraDB23000_home1     23.5.0.24.07                             /u01/app/oracle/product/23.0.0.0/dbhome_1     Configured
    a63db258-7ffc-4dee-b8e5-5accf223e39b     OraDB19000_home1     19.23.0.0.0                              /u01/app/oracle/product/19.0.0.0/dbhome_1     Configured
    

Tâche 3 : préparation du fichier de réponses

  1. Copiez le fichier de réponses du modèle sur zdmhost placé sous $ZDM_HOME/rhp/zdm/template/ dans un autre répertoire.

  2. Modifiez le fichier de réponses copié en fonction de la configuration des environnements source et cible. Voici un exemple de fichier de réponses partagé avec un minimum de paramètres utilisés pour terminer la migration avec la mise à niveau.

    TGT_DB_UNIQUE_NAME=tgt23ai_ai
    MIGRATION_METHOD=OFFLINE_PHYSICAL
    DATA_TRANSFER_MEDIUM=OSS
    PLATFORM_TYPE=VMDB
    SRC_DB_LISTENER_PORT=1521
    HOST=https://swiftobjectstorage.eu-frankfurt-1.oraclecloud.com/v1/frrudica1wgd
    OPC_CONTAINER=ZDM
    NONCDBTOPDB_CONVERSION=TRUE
    TGT_SKIP_DATAPATCH=FALSE
    ZDM_NONCDBTOPDB_PDB_NAME=newpdb23
    ZDM_PRE_UPGRADE_TARGET_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1
    

Tâche 4 : évaluer la migration

Evaluez la migration en modifiant les paramètres en fonction des détails de la source et de la cible.

./zdmcli migrate database -rsp /home/zdmuser/response_files/zdm_phyupg.rsp \
-sourcedb test \
-sourcenode test23ai1 \
-srcauth zdmauth \
-srcarg1 user:opc \
-srcarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-srcarg3 sudo_location:/usr/bin/sudo \
-targetnode tgt23ai \
-tgtauth zdmauth \
-tgtarg1 user:opc \
-tgtarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-tgtarg3 sudo_location:/usr/bin/sudo \
-tdekeystorepasswd \
-tgttdekeystorepasswd \
-backupuser oracleidentitycloudservice/s****aik@oracle.com \
-eval

Remarque : vous pouvez surveiller le travail à l'aide de la commande suivante.

$ZDM_HOME/bin/zdmcli query job -jobid <jobid>

Tâche 5 : effectuer la migration réelle

Effectuez la migration réelle à l'aide de la commande suivante. Modifiez les valeurs en fonction des environnements source et cible.

./zdmcli migrate database -rsp /home/zdmuser/response_files/zdm_phyupg.rsp \
-sourcedb test \
-sourcenode test23ai1 \
-srcauth zdmauth \
-srcarg1 user:opc \
-srcarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-srcarg3 sudo_location:/usr/bin/sudo \
-targetnode tgt23ai \
-tgtauth zdmauth \
-tgtarg1 user:opc \
-tgtarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-tgtarg3 sudo_location:/usr/bin/sudo \
-tdekeystorepasswd \
-tgttdekeystorepasswd \
-backupuser oracleidentitycloudservice/s***aik@oracle.com

Remerciements

Ressources de formation supplémentaires

Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation produit, consultez le site Oracle Help Center.