Hinweis:

Migration von einer On-Premise-Nicht-Containerdatenbank des Typs 19c zu einer Oracle Database 23ai-Containerdatenbank

Einführung

Zero Downtime Migration (ZDM) 21.5 führt die physische Migration mit einem laufenden Upgrade ein und ermöglicht nahtlose Übergänge für Oracle-Datenbanken. Dieses Feature unterstützt die Migration von Oracle-Datenbanken 11.2.0.4 und 12c in 19c Oracle-Datenbanken sowie Migrationen von 19c-Quelldatenbanken zu Oracle Database 23ai.

In diesem Tutorial wird erläutert, wie ZDM die Migration und Konvertierung einer Nicht-Containerdatenbank (CDB) 19c-Quelldatenbank in eine CDB erleichtert, während ein Upgrade auf Zielebene durchgeführt wird. ZDM führt eine anfängliche Migration mit einer temporären Nicht-CDB-Zieldatenbank aus, damit Kunden eine Nicht-CDB-Datenbank migrieren und upgraden können. Nach Abschluss dieser Anfangsphase nutzt ZDM das automatische Upgrade, um in Multi-Tenant zu konvertieren und die Datenbank auf die gewünschte Version zu aktualisieren.

Dieses Tutorial wurde speziell für die Migration von On-Premise-Nicht-CDB-Datenbanken mit Version 19c von einer Linux-Plattform auf die Oracle Database 23ai-CDB entwickelt.

Im Folgenden werden die Eigenschaften und Details der Quell- und Zielumgebungen beschrieben.

Bild mit Quell- und Zieldetails

Ziele

Voraussetzungen

Aufgabe 1: ZDM-Server vorbereiten und installieren

  1. Stellen Sie einen dedizierten Compute-Host für die ZDM-Softwareinstallation bereit. Der Host, auf dem die ZDM-Software installiert ist, wird als ZDM-Servicehost bezeichnet. Die folgenden Voraussetzungen müssen auf dem Host erfüllt sein:

    • Oracle Linux 8 und Boot-Volume-Größe von 200 GB.
    • 100 GB freier Speicherplatz.
    • Es wird keine Oracle Grid Infrastructure ausgeführt.
    • Verbindung zur Quell- und Zieldatenbank (Server) möglich.
  2. Stellen Sie mit putty eine Verbindung zum ZDM-Host her.

  3. Führen Sie den folgenden Befehl aus, um das Dateisystem zu erweitern und die 200 GB verfügbar zu machen.

    [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. Erstellen Sie mit dem folgenden Befehl eine neue Gruppe, einen neuen Benutzer und die erforderlichen Verzeichnisse als Root-Benutzer.

    [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. Installieren Sie die erforderlichen Softwarepackages mit dem folgenden Befehl als Root-Benutzer.

    [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. Laden Sie die ZDM-Softwareversion 21.5 herunter, und kopieren Sie die ZIP-Datei in den ZDM-Host in das Verzeichnis /home/zdmuser/zdminstall/. Ändern Sie den Eigentümer der ZIP-Datei mit dem folgenden Befehl als Root-Benutzer in zdmuser.

    [root@zdm ~]# chown zdmuser:zdm /home/zdmuser/zdminstall/zdm21.5.zip
    
  7. Installieren Sie die ZDM-Software mit dem folgenden Befehl als zdmuser.

    [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. Führen Sie den folgenden Befehl aus, um ZDM zu starten, und prüfen Sie den Status als 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. Führen Sie den folgenden Befehl aus, um ein SSH-Schlüsselpaar für zdmuser zu erstellen. Dies wird später verwendet, um sich mit SSH beim Quell- und Zieldatenbankserver anzumelden. Behalten Sie die Standardwerte bei.

    [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. Erstellen Sie auf der Seite Benutzerdetails ein Authentifizierungstoken für den OCI-Benutzer.

    Klicken Sie auf Authentifizierungstoken, Token generieren, geben Sie eine Beschreibung ein, und klicken Sie auf Token generieren.

    Hinweis: Kopieren Sie dieses Token für Ihre Datensätze, da es nicht erneut angezeigt wird.

    Bild mit Erstellung des Authentifizierungstokens

  11. Führen Sie den folgenden Befehl aus, um das Oracle Cloud Infrastructure-Befehlszeilenschnittstellen-(OCI-CLI-)Tool als zdmuser zu installieren, mit dem auf die OCI-Ressourcen zugegriffen wird. Beispiel: Kopieren Sie die Data Pump-Dumpdatei in OCI Object Storage.

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

    Hinweis: Für die OCI-CLI-Installation ist Benutzer-OCID, Mandanten-OCID, Home-Region erforderlich. Verwenden Sie diese Werte gemäß Ihrem Cloud-Mandanten, und behalten Sie die anderen Parameterwerte als Standardwert bei.

    [zdmuser@zdm ~]$ oci setup config
    
  12. Führen Sie den folgenden Befehl aus, um den Public Key der API-Signatur aus zdmhost in den OCI-Benutzer im Cloud-Mandanten hochzuladen.

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

    Gehen Sie zur OCI-Konsole, navigieren Sie zur Seite Benutzerdetails, klicken Sie auf API-Schlüssel und API-Schlüssel hinzufügen. Wählen Sie Public Key einfügen aus, geben Sie die Ausgabe des obigen Befehls ein, und klicken Sie auf Hinzufügen.

    Bild mit hinzugefügtem API-Schlüssel

  13. Führen Sie den folgenden Befehl aus, um einen Standard-OCI-Objektspeicher-Bucket im OCI-Mandanten mit der OCI-CLI oder OCI-Konsole zu erstellen.

    [zdmuser@zdm ~]$ oci os bucket create --compartment-id ocid1.compartment.oc1.....lh4lfamxdrpuxg3x……… --name zdmbucket
    
  14. Konnektivität von zdmhost zu Quell- und Zieldatenbankservern: Kopieren Sie den SSH-Schlüssel aus zdmhost als zdmuser in die Quelle und das Ziel, wie in Aufgabe 1.9 erstellt.

    #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. Lösen Sie die Hostnamen der Quelldatenbank und der Zieldatenbank auf zdmhost, indem Sie den Hostnamen, die IP und den FQDN als Root-Benutzer in /etc/hosts auf zdmhost kopieren.

Aufgabe 2: Vorabprüfungen in Quell- und Zieldatenbank ausführen

  1. Führen Sie die folgenden Befehle aus, um ORACLE_HOME in der Oracle Base Database Service-Zielinstanz mit derselben Version wie die Quelle zu erstellen.

    [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. Führen Sie den folgenden Befehl aus, um die Erstellung des Datenbank-Homes zu validieren.

    [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
    

Aufgabe 3: Vorbereiten der Antwortdatei

  1. Kopieren Sie die Antwortdatei der Vorlage unter zdmhost unter $ZDM_HOME/rhp/zdm/template/ in ein anderes Verzeichnis.

  2. Ändern Sie die kopierte Antwortdatei gemäß dem Setup der Quell- und Zielumgebung. Im Folgenden finden Sie eine Beispielantwortdatei, die mit minimalen Parametern gemeinsam verwendet wird, um die Migration mit einem Upgrade abzuschließen.

    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
    

Aufgabe 4: Migration auswerten

Bewerten Sie die Migration, indem Sie die Parameter gemäß Quell- und Zieldetails ändern.

./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

Hinweis: Sie können den Job mit dem folgenden Befehl überwachen.

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

Aufgabe 5: Tatsächliche Migration ausführen

Führen Sie die tatsächliche Migration mit dem folgenden Befehl aus. Ändern Sie die Werte entsprechend der Quell- und Zielumgebung.

./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

Danksagungen

Weitere Lernressourcen

Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie im Oracle Learning YouTube-Channel auf weitere kostenlose Lerninhalte zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.