Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction à Oracle Cloud Infrastructure Free Tier.
- Il utilise des exemples de valeurs pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. Lorsque vous terminez votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
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.
Objectifs
- Migrez vers Oracle Cloud Infrastructure (OCI) à l'aide de l'outil ZDM.
Prérequis
-
La base de données source doit être en mode de journalisation archivée.
-
Si la base de données source est sur 12c version 2 ou ultérieure, le cryptage transparent des données (TDE) doit être activé. Assurez-vous que
WALLET_TYPE
est défini surAUTOLOGIN
ouPASSWORD
. -
Le paramètre
DB_UNIQUE_NAME
doit être différent sur la base de données source et la base de données cible. -
La base de données cible doit être créée avant la migration.
-
Provisionnez un répertoire de base Oracle sur le serveur cible de la même manière que la version du répertoire de base de base de données source.
Tâche 1 : Préparer et installer le serveur ZDM
-
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).
-
Connectez-vous à l'hôte ZDM à l'aide de putty.
-
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% /
-
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/
-
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
-
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 parzdmuser
en tant qu'utilisateur root à l'aide de la commande suivante.[root@zdm ~]# chown zdmuser:zdm /home/zdmuser/zdminstall/zdm21.5.zip
-
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...
-
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
-
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:
-
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é.
-
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
-
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.
-
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
-
Connectivité de
zdmhost
aux serveurs de base de données source et cible : copiez la clé SSH dezdmhost
en tant quezdmuser
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
-
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
-
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:
-
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
-
Copiez le fichier de réponses du modèle sur
zdmhost
placé sous$ZDM_HOME/rhp/zdm/template/
dans un autre répertoire. -
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
Liens connexes
Remerciements
- Auteur - Snehaa Patnaik (Spécialiste de l'implémentation - Personnalisé, 3e partie, VM Database & Apps)
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.
Migrate from an On-Premises 19c non-Container Database to Oracle Database 23ai Container Database
G25682-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.