Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Eseguire la migrazione da un database non di tipo container 19c in locale a un container database Oracle Database 23ai
Introduzione
Zero Downtime Migration (ZDM) 21.5 introduce la migrazione fisica con un aggiornamento in volo, consentendo transizioni perfette per i database Oracle. Questa funzione supporta la migrazione dei database Oracle 11.2.0.4 e 12c ai database Oracle 19c, nonché le migrazioni dai database di origine 19c a Oracle Database 23ai.
Questa esercitazione descrive in che modo ZDM facilita la migrazione e la conversione di un database CDB (Non-Container Database) di origine 19c in un CDB durante l'esecuzione di un aggiornamento a livello di destinazione. ZDM esegue una migrazione iniziale utilizzando un database di destinazione non CDB temporaneo per consentire ai clienti di eseguire la migrazione e l'upgrade di un database non CDB. Al termine di questa fase iniziale, ZDM utilizza l'upgrade automatico per eseguire la conversione in multi-tenant e aggiornare il database alla versione desiderata.
Questa esercitazione è stata creata in modo specifico per la migrazione dei database non CDB in locale in cui è in esecuzione la versione 19c da una piattaforma Linux al CDB Oracle Database 23ai.
Di seguito sono riportate le proprietà e i dettagli degli ambienti di origine e di destinazione.
Obiettivi
- Effettua la migrazione a Oracle Cloud Infrastructure (OCI) utilizzando lo strumento ZDM.
Prerequisiti
-
Il database di origine deve essere in modalità di log di archivio.
-
Se il database di origine si trova in 12c Release 2 e successive, è necessario abilitare la funzione TDE (Transparent Data Encryption). Assicurarsi che
WALLET_TYPE
sia impostato suAUTOLOGIN
oPASSWORD
. -
Il parametro
DB_UNIQUE_NAME
deve essere diverso sia nel database di origine che nel database di destinazione. -
Il database di destinazione deve essere creato prima della migrazione.
-
Eseguire il provisioning di una Oracle home nel server di destinazione uguale alla versione della home del database di origine.
Task 1: Preparare e installare il server ZDM
-
Eseguire il provisioning di un host di computazione dedicato per l'installazione del software ZDM. L'host su cui è installato il software ZDM è denominato host del servizio ZDM. È necessario soddisfare i prerequisiti riportati di seguito nell'host.
- Oracle Linux 8 e dimensione del volume di avvio di 200 GB.
- 100 GB di spazio di archiviazione gratuito.
- Nessun Oracle Grid Infrastructure in esecuzione su di esso.
- Possibilità di connessione al database di origine e di destinazione (server).
-
Connettersi all'host ZDM utilizzando putty.
-
Eseguire il comando seguente per estendere il file system e rendere disponibili i 200 GB.
[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% /
-
Creare un nuovo gruppo, un nuovo utente e le directory necessarie come utente root utilizzando il comando seguente.
[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/
-
Installare i pacchetti software necessari come utente root utilizzando il comando seguente.
[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
-
Scaricare la versione 21.5 del software ZDM e copiare il file zip nell'host ZDM nella directory
/home/zdmuser/zdminstall/
. Modificare il proprietario del file zip inzdmuser
come utente root utilizzando il comando seguente.[root@zdm ~]# chown zdmuser:zdm /home/zdmuser/zdminstall/zdm21.5.zip
-
Installare il software ZDM come
zdmuser
con il comando seguente.[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...
-
Eseguire il comando seguente per avviare ZDM e controllare lo stato come
zdmuser
.[zdmuser@zdm ~]$ $ZDMHOME/bin/zdmservice start Return code is 0 Server started successfully. [zdmuser@zdm ~]$ $ZDMHOME/bin/zdmservice status --------------------------------------- Service Status --------------------------------------- Running: true
-
Eseguire il comando seguente per creare una coppia di chiavi SSH per
zdmuser
. Verrà utilizzato in un secondo momento per eseguire il login al database server di origine e di destinazione utilizzando SSH. Mantenere le impostazioni predefinite.[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:
-
Creare un token di autenticazione per l'utente OCI dalla pagina Dettagli utente.
Fare clic su Token di autenticazione, Genera token, immettere Descrizione e fare clic su Genera token.
Nota: copiare questo token per i record in quanto non verrà visualizzato di nuovo.
-
Eseguire il comando riportato di seguito per installare lo strumento Oracle Cloud Infrastructure Command Line Interface (OCI CLI) come
zdmuser
che verrà utilizzato per accedere alle risorse OCI. Ad esempio, copia il file di dump di Data Pump nello storage degli oggetti OCI.[zdmuser@zdm ~]$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
Nota: l'installazione dell'interfaccia CLI OCI richiede OCID utente, OCID tenancy, Home region, utilizzare questi valori in base alla tenancy cloud in uso e mantenere gli altri valori dei parametri come predefiniti.
[zdmuser@zdm ~]$ oci setup config
-
Eseguire il comando riportato di seguito per caricare la chiave pubblica di firma API nell'utente OCI nella tenancy cloud da
zdmhost
.[zdmuser@zdmhost ~]$ cat /home/zdmuser/.oci/oci_api_key_public.pem -----BEGIN PUBLIC KEY----- ********** -----END PUBLIC KEY-----
Andare alla console OCI, andare alla pagina Dettagli utente, fare clic su Chiavi API e su Aggiungi chiave API. Selezionare Incolla chiave pubblica, immettere l'output del comando precedente e fare clic su Aggiungi.
-
Eseguire il comando riportato di seguito per creare un bucket di storage degli oggetti OCI standard nella tenancy OCI utilizzando l'interfaccia CLI OCI o la console OCI.
[zdmuser@zdm ~]$ oci os bucket create --compartment-id ocid1.compartment.oc1.....lh4lfamxdrpuxg3x……… --name zdmbucket
-
Connettività da
zdmhost
ai database server di origine e di destinazione: copiare la chiave SSH dazdmhost
comezdmuser
nell'origine e nella destinazione come creato nel task 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
-
Risolvere i nomi host del database di origine e del database di destinazione in zdmhost copiando il nome host, l'IP e il nome FQDN in
/etc/hosts
su zdmhost come utente root.
Task 2: Esegui controlli preliminari sia nel database di origine che in quello di destinazione
-
Eseguire i comandi riportati di seguito per creare
ORACLE_HOME
nell'istanza di Oracle Base Database Service di destinazione con la stessa versione dell'origine.[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:
-
Eseguire il comando riportato di seguito per convalidare la creazione della home del database.
[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
Task 3: Preparare il file di risposta
-
Copiare il file di risposta del modello in
zdmhost
posizionato in$ZDM_HOME/rhp/zdm/template/
in un'altra directory. -
Modificare il file di risposta copiato in base all'impostazione dell'ambiente di origine e di destinazione. Di seguito è riportato un file di risposta di esempio condiviso con parametri minimi utilizzati per completare la migrazione con l'aggiornamento.
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
Task 4: Valutazione della migrazione
Valutare la migrazione modificando i parametri in base ai dettagli di origine e destinazione.
./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
Nota: è possibile monitorare il job utilizzando il comando seguente.
$ZDM_HOME/bin/zdmcli query job -jobid <jobid>
Task 5: eseguire la migrazione effettiva
Eseguire la migrazione effettiva utilizzando il comando seguente. Modificare i valori in base all'ambiente di origine e di destinazione.
./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
Collegamenti correlati
Conferme
- Autore - Anticipazione di Patnaik (esperto dell'implementazione - Personalizzato, 3a parte, database e app VM)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Migrate from an On-Premises 19c non-Container Database to Oracle Database 23ai Container Database
G25676-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.