Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Démarrer avec le niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
Migrer d'une base de données non conteneur 19c sur place vers une base de données conteneur Oracle Database 23ai
Présentation
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 fonction 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 sources 19c vers Oracle Database 23ai.
Ce tutoriel explique comment ZDM facilite la migration et la conversion d'une base de données 19c non conteneur source en base de données conteneur lors de l'exécution d'une mise à niveau au niveau cible. 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. À la fin de cette phase initiale, ZDM tire parti de la mise à niveau automatique pour la convertir en multilocataire et mettre à niveau la base de données vers la version souhaitée.
Ce tutoriel est spécialement conçu pour la migration des bases de données non conteneur sur place 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éalables
-
La base de données source doit être en mode d'archivage des journaux.
-
Si la base de données source est sur 12c Version 2 et versions ultérieures, le chiffrement transparent des données (TDE) doit être activé. Assurez-vous que
WALLET_TYPE
est réglé àAUTOLOGIN
ouPASSWORD
. -
Le paramètre
DB_UNIQUE_NAME
doit être différent dans 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 identique à la version du répertoire de base de la 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 du service ZDM. Les conditions requises suivantes doivent être remplies sur l'hôte :
- Oracle Linux 8 et volume de démarrage de 200 Go.
- 100 Go d'espace de stockage libre.
- Aucune infrastructure Oracle Grid Infrastructure ne s'exécute dessus.
- Possibilité de se connecter à la base 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 racine à 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 ensembles de logiciels requis en tant qu'utilisateur racine à 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 responsable du fichier zip parzdmuser
en tant qu'utilisateur racine à 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érifiez le statut
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 pour créer une paire de clés SSH pour
zdmuser
. Cette fonction sera utilisée ultérieurement pour vous connecter au serveur 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 votre utilisateur OCI, à partir de la page Détails de l'utilisateur.
Cliquez sur Jetons d'authentification, Générer un jeton, entrez une description et cliquez sur Générer un jeton.
Note : Copiez ce jeton pour vos dossiers, car il ne sera plus affiché.
-
Exécutez la commande suivante pour installer l'outil d'interface de ligne de commande d'Oracle Cloud Infrastructure (interface de ligne de commande OCI) sous
zdmuser
qui sera utilisé pour accéder aux ressources OCI. Par exemple, copiez le fichier de vidage de l'extraction de données dans le service de stockage d'objets OCI.[zdmuser@zdm ~]$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
Note : L'installation de l'interface de ligne de commande OCI nécessite l'OCID de l'utilisateur, l'OCID de la location et la région principale, utilisez ces valeurs selon votre location en nuage et conservez les autres valeurs de paramètre par défaut.
[zdmuser@zdm ~]$ oci setup config
-
Exécutez la commande suivante pour charger la clé publique de signature d'API à l'utilisateur OCI dans la location en nuage à partir de
zdmhost
.[zdmuser@zdmhost ~]$ cat /home/zdmuser/.oci/oci_api_key_public.pem -----BEGIN PUBLIC KEY----- ********** -----END PUBLIC KEY-----
Allez à la console OCI, naviguez jusqu'à 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 seau de stockage d'objets OCI 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 à zdmhost en copiant le nom d'hôte, l'adresse IP et le nom de domaine complet à
/etc/hosts
sur zdmhost en tant qu'utilisateur racine.
Tâche 2 : Exécuter des vérifications préalables dans les bases de données source et cible
-
Exécutez les commandes suivantes pour créer
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 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éparer le fichier de réponses
-
Copiez le fichier de réponse du modèle sur
zdmhost
placé sous$ZDM_HOME/rhp/zdm/template/
dans un autre répertoire. -
Modifiez le fichier de réponses copié conformément à la configuration de l'environnement source et cible. Voici un exemple de fichier de réponses partagé avec des paramètres minimaux utilisés pour effectuer la migration avec 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
Évaluez 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
Note : Vous pouvez surveiller la tâche à 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 de l'environnement 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
Confirmation
- Auteur - Snehaa Patnaik (Spécialiste en mise en oeuvre - Personnalisé, 3e partie, base de données et applications de machine virtuelle)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Migrate from an On-Premises 19c non-Container Database to Oracle Database 23ai Container Database
G25675-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.