Kostenloses Containerimage von Autonomous Database verwenden

Mit dem kostenlosen Autonomous Database-Containerimage können Sie Autonomous Database in einem Container in Ihrer eigenen Umgebung ausführen, ohne dass Sie auf die Oracle Cloud Infrastructure-Konsole oder das Internet zugreifen müssen.

Informationen zum Free Container Image

Sie können von einem Repository auf das kostenlose Autonomous Database-Containerimage zugreifen und es in Ihrer lokalen Umgebung ausführen.

Autonomous Database stellt eine vollständig verwaltete Oracle Database bereit, die auf Oracle Cloud Infrastructure verfügbar ist. In Oracle Cloud Infrastructure führen Sie Lebenszyklusmanagementvorgänge aus, und führen Sie Autonomous Database mit der Oracle Cloud Infrastructure-Konsole aus. Außerdem stellen Sie über das öffentliche Internet oder über ein von Ihnen eingerichtetes privates Netzwerk eine Verbindung zur Datenbank her (je nach Netzwerkkonfiguration und Sicherheitsanforderungen).

Hinweis

Autonomous Database unterstützt sowohl die Versionen des kostenlosen Containerimages 19c von Oracle Autonomous Database als auch des kostenlosen Containerimages 23ai von Oracle Autonomous Database.

Das kostenlose Autonomous Database-Containerimage bietet eine Alternative zur Ausführung von Autonomous Database in einem Container in Ihrer eigenen Umgebung, ohne dass Zugriff auf die Oracle Cloud Infrastructure-Konsole oder das Internet erforderlich ist. Wenn Sie Autonomous Database in einem Container ausführen, stellt der Container eine lokale, isolierte Umgebung mit zusätzlichen Optionen für die Entwicklung, das Testen und die Exploration von Oracle Autonomous Database-Features bereit.

Kostenlose Containerimagelizenz von Autonomous Database

Beschreibt die Lizenzierung für das kostenlose Autonomous Database-Containerimage.

Autonomous Database Free Container Image unterliegt der Lizenzierung.

Das ausgewählte Containerimage und die gesamte darin enthaltene Software sind unter den Oracle-Geschäftsbedingungen für die kostenlose Verwendung lizenziert, die im Containerimage bereitgestellt werden. Ihre Nutzung des Containers unterliegt den Bedingungen dieser Lizenzen.

Features für kostenloses Containerimage von Autonomous Database

Das kostenlose Autonomous Database-Containerimage bietet viele der Features, die in Autonomous Database Serverless verfügbar sind.

  • Jedes kostenlose Containerimage stellt zwei Autonomous Database-Instanzen bereit, eine Instanz mit dem Workload-Typ "Data Warehouse" und eine Instanz mit dem Workload-Typ "Transaktionsverarbeitung".

  • Die Datenbank wird mit dem Workload-Typ "Transaktionsverarbeitung" oder dem Workload-Typ "Data Warehouse" basierend auf dem Workload-Typ gestartet, den Sie beim Hochfahren angeben.

  • Sie können Datenbankvorgänge mit dem Befehlszeilenutility adb-cli ausführen.

  • Die Ressourcenzuweisung für Free Container Image beträgt 4 ECPUs und 20 GB Speicher und ermöglicht maximal 30 gleichzeitige Datenbanksessions.

  • Jedes kostenlose Containerimage unterstützt die Autonomous Database-Nutzungsgruppen:

    • Data Warehouse-Workload: Sie verbinden sich über HIGH-, MEDIUM- oder LOW-Services

    • Transaktionsverarbeitungs-Workload: Sie verbinden sich über HIGH-, MEDIUM-, LOW-, TP- oder TPURGENT-Services

    Weitere Informationen finden Sie unter Autonomous Database-Workload-Typen.

  • Das kostenlose Containerimage unterstützt die folgenden integrierten Datenbanktools:

    • Datenbankaktionen

    • Oracle REST Data Services (ORDS)

    • Oracle APEX

    • Oracle Database API für MongoDB

Empfehlungen und Einschränkungen für kostenlose Containerimages in Autonomous Database

Beschreibt Anforderungen und Einschränkungen für Free Container Image.

Empfehlungen für die Ressourcenzuteilung für das kostenlose Containerimage

Folgendes ist die empfohlene Ressourcenzuweisung für das Free Container Image:

  • 4 CPUs

  • 8 GB Speicher

Einschränkungen für kostenloses Containerimage

  • Es gibt keine automatischen Patching- oder Wartungsfenster für das Free Container Image. Das Repository stellt die neueste Version des Free Container Images bereit. Prüfen Sie das Repository, um neuere Versionen von Free Container Image zu finden.

  • Die folgenden integrierten Autonomous Database-Tools werden nicht unterstützt:

    • Grafik
    • Oracle Machine Learning
    • Datentypen
  • Wenn Autonomous Database in einem Container ausgeführt wird, stellt der Container eine lokale Autonomous Database-Instanz bereit. Das Containerimage enthält nicht die Features, die nur über die Oracle Cloud Infrastructure-Konsole oder die APIs verfügbar sind. Einige Features, die datenbankintern verfügbar und auch über die Oracle Cloud Infrastructure-Konsole verfügbar sind, können weiterhin über datenbankinterne Befehle verwendet werden, wie das Zurücksetzen des Kennworts ADMIN. Im Folgenden sind einige der nicht verfügbaren Features aufgeführt:

    Feature Verfügbar oder nicht verfügbar
    Instanz sichern nicht verfügbar
    Zeichensatz auswählen nicht verfügbar
    Instanz kopieren nicht verfügbar
    Elastischen Pool erstellen nicht verfügbar
    Kundenverwaltete Schlüssel nicht verfügbar
    Datenbank umbenennen nicht verfügbar
    Data Safe nicht verfügbar
    Compute-Autoscaling deaktivieren nicht verfügbar
    Integrierte Datenbanktools deaktivieren nicht verfügbar
    Speicher-Autoscaling deaktivieren nicht verfügbar
    Disaster-Recovery-Optionen, einschließlich Autonomous Data Guard und backupbasiertem Disaster Recovery. nicht verfügbar
    Wallet herunterladen nicht verfügbar
    Integrierte Datenbanktools aktivieren nicht verfügbar
    Compute Autoskalierung aktivieren nicht verfügbar
    Speicher-Autoscaling aktivieren nicht verfügbar
    Einem elastischen Pool beitreten nicht verfügbar
    Netzwerk-ACLs nicht verfügbar
    Oracle Cloud Infrastructure-Ereignisse nicht verfügbar
    Performancehub nicht verfügbar
    Private Endpunkte nicht verfügbar
    Real Application Testing nicht verfügbar
    Auf Resource Principal basierende Authentifizierung nicht verfügbar
    Instanz neu starten nicht verfügbar
    Instanz wiederherstellen nicht verfügbar
    Wallet rotieren nicht verfügbar
    Beispielschema nicht verfügbar
    CPU und Speicher horizontal skalieren nicht verfügbar
    CPU und Speicher vertikal skalieren nicht verfügbar
    Instanz-Patchebene auswählen nicht verfügbar
    Instanz starten nicht verfügbar
    Instanz stoppen nicht verfügbar
    Hinweis

    Wenn Sie ein kostenloses Containerimage in einem Container ausführen, können Sie eine Instanz starten, stoppen oder eine Instanz neu starten, indem Sie den Container starten, stoppen oder neu starten.

Container Registry-Speicherorte für kostenloses Autonomous Database-Containerimage

Es gibt mehrere Standorte, an denen Sie ein kostenloses Autonomous Database-Containerimage abrufen können, darunter: Oracle Cloud Infrastructure Registry (Container Registry) und GitHub.

Sie können das kostenlose Autonomous Database-Containerimage an mehreren Standorten abrufen. In den dargestellten Beispielen werden podman-Befehle verwendet (weitere Informationen finden Sie in Podman).

  1. Starten Sie einen virtuellen Podman-Rechner.
    Beispiele:
    podman machine init 
    podman machine set --cpus 4 --memory 8192 
    podman machine start 
  2. Rufen Sie das Image des kostenlosen Containers ab.

    Oracle Cloud Infrastructure Registry:

    Beispiel: Verwenden Sie den Befehl podman, um das neueste Free Container Image abzurufen:

    podman pull container-registry.oracle.com/database/adb-free:latest-23ai
    Hinweis

    Oracle Autonomous Database Serverless unterstützt auch Containerimages des Typs 19c.
    • Geben Sie für 19c-Containerimagenamen das Tag latest als Datenbankversion an.

    • Um im obigen Beispiel das Autonomous Database Free Container Image 19c abzurufen, verwenden Sie den folgenden Befehl im Imagenamentag:
      podman pull container-registry.oracle.com/database/adb-free:latest

    Im gesamten Dokument bezieht sich das Tag für den Bildnamen auf die Version latest-23ai.

    Weitere Details und zusätzliche Informationen finden Sie unter "Oracle Autonomous Database Free" in Oracle Cloud Infrastructure Registry.

    GitHub-Packages:

    Beispiel: Verwenden Sie den Befehl podman, um das kostenlose Containerimage aus folgenden GitHub-Packages abzurufen:

    podman pull ghcr.io/oracle/adb-free:latest-23ai
  3. Prüfen Sie das Image.

    Beispiele:

    podman images container-registry.oracle.com/database/adb-free:latest-23ai

Kostenloses Containerimage starten

Nachdem Sie das kostenlose Autonomous Database-Containerimage heruntergeladen haben, können Sie das Image in einem Container starten.

Die Datenbank wird mit dem Workload-Typ "Transaktionsverarbeitung" oder dem Workload-Typ "Data Warehouse" basierend auf dem von Ihnen angegebenen Workload-Typ gestartet.

  1. Starten Sie einen Container, um das kostenlose Containerimage auszuführen.

    Zum Beispiel mit podman:

    podman run -d \
    -p 1521:1522 \
    -p 1522:1522 \
    -p 8443:8443 \
    -p 27017:27017 \
    -e WORKLOAD_TYPE='ATP' \
    -e WALLET_PASSWORD=*** \
    -e ADMIN_PASSWORD=*** \
    --cap-add SYS_ADMIN \
    --device /dev/fuse \
    --name adb-free \
    container-registry.oracle.com/database/adb-free:latest-23ai

    Befehlsnotizen:

    • Autonomous Database Serverless unterstützt auch 19c-Containerimages.
      • Geben Sie für 19c-Containerimagenamen das Tag latest als Datenbankversion an.

      • Um im obigen Beispiel einen Container zur Ausführung des Autonomous Database Free Container Image 19c zu starten, verwenden Sie den folgenden Befehl im Imagenamentag:
        container-registry.oracle.com/database/adb-free:latest
    • Im gesamten Dokument bezieht sich das Tag für den Bildnamen auf die Version latest-23ai.

    • Die WORKLOAD_TYPE kann entweder ATP oder ADW sein. Der Standardwert ist ATP.

    • Standardmäßig erhält die Datenbank den Namen MYATP oder MYADW, je nach übergebenem WORKLOAD_TYPE-Wert. Wenn Sie optional einen anderen Datenbanknamen als den Standardnamen verwenden möchten, können Sie den Parameter DATABASE_NAME festlegen. Der Datenbankname darf nur alphanumerische Zeichen enthalten.

    • Beim Starten des Containers wird die entsprechende MY<WORKLOAD_TYPE>.pdb heruntergeladen und aus einem öffentlichen Object Storage-Bucket integriert.

    • Das Wallet wird mit dem angegebenen WALLET_PASSWORD generiert.

    • Sie müssen die ADMIN_PASSWORD bei der ersten Anmeldung ändern.

    • Prüfen Sie die folgenden Anforderungen, wenn Sie ADMIN_PASSWORD erstellen oder ändern:
      • Das Kennwort muss zwischen 12 und 30 Zeichen umfassen und mindestens einen Großbuchstaben, einen Kleinbuchstaben und ein numerisches Zeichen enthalten.
      • Das Kennwort darf nicht den Benutzernamen enthalten.
    • Prüfen Sie die folgenden Anforderungen, wenn Sie WALLET_PASSWORD erstellen oder ändern:
      • Das Kennwort muss zwischen 8 und 30 Zeichen lang sein und Buchstaben sowie numerische Zeichen oder Sonderzeichen enthalten.
    • Bei einem OFS-Mount beginnt der Container mit der Funktion SYS_ADMIN. Außerdem muss auf das virtuelle Gerät /dev/fuse zugegriffen werden können.

    • Mit diesen -p-Optionen wird angegeben, dass die folgenden Ports an den Containerprozess weitergeleitet werden:

      Port Beschreibung
      1.521 TLS
      1.522 mTLS
      8.443 HTTPS-Port für ORDS/APEX und Database Actions
      27.017 Mongo-API

    Wenn Sie sich hinter einem Firmenproxy befinden, nehmen Sie -e-Optionen auf, um Umgebungsvariablen für Proxys anzugeben. Zum Beispiel mit podman:

    podman run -d \
    -p 1521:1522 \
    -p 1522:1522 \
    -p 8443:8443 \
    -p 27017:27017 \
    -e WORKLOAD_TYPE='ATP' \
    -e WALLET_PASSWORD=*** \
    -e ADMIN_PASSWORD=*** \
    -e http_proxy=http://example-corp-proxy.com:80/ \
    -e https_proxy=http://example-corp-proxy.com:80/ \
    -e no_proxy=localhost,127.0.0.1 \
    -e HTTP_PROXY=http://example-corp-proxy.com:80/  \
    -e HTTPS_PROXY=http://example-corp-proxy.com:80/  \
    -e NO_PROXY=localhost,127.0.0.1 \
    --cap-add SYS_ADMIN \
    --device /dev/fuse \
    --name adb-free \
    container-registry.oracle.com/database/adb-free:latest-23ai

Datenbankvorgänge mit adb-cli ausführen

Mit dem Befehlszeilenutility adb-cli können Sie Datenbankvorgänge ausführen, nachdem der Container hochgefahren und gestartet ist.

Um adb-cli zu verwenden, können Sie den folgenden Alias ganz einfach definieren:

alias adb-cli="podman exec <container_name> adb-cli"

Verfügbare Befehle

Sie können die Liste der verfügbaren Befehle mit dem folgenden Befehl anzeigen:

adb-cli --help 
Usage: adb-cli [OPTIONS] COMMAND [ARGS]... 
    ADB-S Command Line Interface (CLI) to perform container-runtime database operations 
Options: 
    -v, --version Show the version and exit. 
    --help Show this message and exit. 
Commands: 
    add-database 
    change-password 

Datenbank hinzufügen

Sie können eine Datenbank mit dem folgenden Befehl hinzufügen:

adb-cli add-database --workload-type "ATP" --admin-password "Welcome_MY_ATP_1234" 

Kennwort ändern

Sie können das Admin-Kennwort mit dem folgenden Befehl ändern:

adb-cli change-password --database-name "MYATP" 
    --old-password "Welcome_MY_ATP_1234" --new-password "Welcome_12345"

Verbindung zu einem kostenlosen Containerimage herstellen

Wenn das kostenlose Containerimage in einem Container ausgeführt wird, können Sie eine Verbindung zu einer Autonomous Database-Instanz herstellen.

Um eine Verbindung zu einer Autonomous Database-Instanz herzustellen, die in einem Container ausgeführt wird, können Sie entweder das Wallet einrichten und eine Verbindung herstellen oder eine TLS-Wallet-lose Verbindung verwenden.

Verbindung zu ORDS, APEX oder Database Actions über ein Autonomous Database-Containerimage herstellen

Mit dem Container hostname werden selbstsignierte SSL-Zertifikate generiert, um HTTPS-Traffic auf Port 8443 zu verarbeiten. Auf Oracle APEX und Database Actions kann über den Containerhost (oder einfach localhost) zugegriffen werden.

Anwendung URL
Oracle APEX https://localhost:8443/ords/apex
Datenbankaktionen https://localhost:8443/ords/sql-developer
Hinweis

Für zusätzliche Datenbanken, die mit dem Befehl adb-cli add-database integriert wurden, verwenden Sie die URL-Formate https://localhost:8443/ords/{database_name}/apex und https://localhost:8443/ords/{database_name}/sql-developer, um auf APEX bzw. Database Actions zuzugreifen.

Verfügbare TNS-Aliasnamen für die Verbindung mit einem Autonomous Database-Containerimage

Mit einem der folgenden Aliasnamen können Sie eine Verbindung zu einem Autonomous Database-Containerimage herstellen.

Tabelle 3-7: Verfügbare TNS-Aliasnamen

Protokoll Transaktionsverarbeitungs-Workload Data Warehouse-Workload
mTLS
  • myatp_medium
  • myatp_high
  • myatp_low
  • myatp_tp
  • myatp_tpurgent
  • myadw_medium
  • myadw_high
  • myadw_low
TLS
  • myatp_medium_tls
  • myatp_high_tls
  • myatp_low_tls
  • myatp_tp_tls
  • myatp_tpurgent_tls
  • myadw_medium_tls
  • myadw_high_tls
  • myadw_low_tls

Die TNS-Aliaszuordnungen für diese Verbindungszeichenfolgen befinden sich in $TNS_ADMIN/tnsnames.ora. Informationen zu den Servicenamen in tnsnames.ora finden Sie unter Nebenwährung und Prioritäten in Autonomous Database verwalten.

Mit einem Wallet eine Verbindung zu einem Autonomous Database-Containerimage herstellen

Beschreibt die Schritte zum Herstellen einer Verbindung zu einem Autonomous Database-Containerimage mit einem Wallet.

Führen Sie die folgenden Schritte aus, um ein Wallet einzurichten und eine Verbindung herzustellen:

  1. Kopieren Sie das generierte Wallet auf den Host.

    Wenn Sie den Container starten, generiert Autonomous Database ein Wallet in /u01/app/oracle/wallets/tls_wallet.

    Beispiel: Kopieren Sie das generierte Wallet in den lokalen Ordner /scratch/tls_wallet:

    podman cp adb-free:/u01/app/oracle/wallets/tls_wallet /scratch/tls_wallet

    Dadurch wird das Wallet in den Ordner /scratch/tls_wallet kopiert.

  2. Setzen Sie den Wert der Umgebungsvariablen TNS_ADMIN auf das Wallet-Verzeichnis.

    Beispiele:

    export TNS_ADMIN=/scratch/tls_wallet
  3. Wenn Sie eine Verbindung zu einem Remotehost herstellen möchten, auf dem das kostenlose Containerimage ausgeführt wird, ersetzen Sie localhost in $TNS_ADMIN/tnsnames.ora durch den Remotehost-FQDN.

    Beispiele:

    sed -i 's/localhost/example.com/g' $TNS_ADMIN/tnsnames.ora
  4. Melden Sie sich bei der Autonomous Database-Instanz an.

    Beispiel: Verwenden Sie sqlplus, um eine Verbindung zur Autonomous Database-Instanz der Transaktionsverarbeitung-Workload herzustellen:

    sqlplus admin/password@myatp_low_tls

    Beispiel: Verwenden Sie sqlplus, um eine Verbindung zur Autonomous Database-Instanz der Data Warehouse-Workload herzustellen:

    sqlplus admin/password@myadw_low_tls

Verbindung zu einem Autonomous Database-Containerimage ohne Wallet (TLS) herstellen

Beschreibt die Schritte zum Herstellen einer Verbindung zu einem Autonomous Database-Containerimage ohne Wallet (TLS).

Um eine Verbindung ohne Wallet herzustellen, müssen Sie den Truststore Ihres Clients mit dem selbstsignierten Zertifikat aktualisieren, das beim Containerstart generiert wurde.

Führen Sie die folgenden Schritte aus, um eine TLS-Verbindung einzurichten und eine Verbindung herzustellen.

  1. Kopieren Sie /u01/app/oracle/wallets/tls_wallet/adb_container.cert aus dem Container, und aktualisieren Sie den System-Truststore.

    Beispiele:

    podman cp adb-free:/u01/app/oracle/wallets/tls_wallet/adb_container.cert adb_container.cert  
    sudo cp adb_container.cert /etc/pki/ca-trust/source/anchors 
    sudo update-ca-trust 
  2. Melden Sie sich bei der Autonomous Database-Instanz an.

    Beispiel: Verwenden Sie sqlplus, um eine Verbindung zur Autonomous Database-Instanz der Transaktionsverarbeitungs-Workload herzustellen:

    sqlplus admin/password@myatp_low

    Beispiel: Verwenden Sie sqlplus, um eine Verbindung zur Autonomous Database-Instanz der Data Warehouse-Workload herzustellen:

    sqlplus admin/password@myadw_low

Daten zwischen freien Autonomous Database-Containern migrieren

Wenn eine neue Version des kostenlosen Containerimages verfügbar ist, können Sie Daten von einem Container in einen anderen Container migrieren.

Beispiel: Verwenden Sie vorhandene Daten, die Sie in einem Container erstellt haben, indem Sie diese Daten auf die neueste Version von Free Container Image migrieren, wenn ein neues Update verfügbar ist.

  1. Podman-Volumes erstellen

    Beispiele:

    podman volume create adb_container_volume
  2. Prüfen Sie den Volume-Einhängepunkt.

    Der Einhängepunkt ist ein von Podman verwaltetes Verzeichnis.

    podman inspect adb_container_volume
     
    [
         {
              "Name": "adb_container_volume",
              "Driver": "local",
              "Mountpoint": "/share/containers/storage/volumes/adb_container_volume/_data",
              "CreatedAt": "2023-09-11T21:23:34.305877073Z",
              "Labels": {},
              "Scope": "local",
              "Options": {},
              "MountCount": 0,
              "NeedsCopyUp": true,
              "NeedsChown": true
         }
    ]
  3. Starten Sie den Quellcontainer, und mounten Sie das Volume in /u01/data im Container.

    Beispiele:

    podman run -d \
    -p 1521:1522 \
    -p 1522:1522 \
    -p 8443:8443 \
    -p 27017:27017 \
    -e WORKLOAD_TYPE='ATP' \
    -e WALLET_PASSWORD=*** \
    -e ADMIN_PASSWORD=*** \
    --cap-add SYS_ADMIN \
    --device /dev/fuse \
    --name source_adb_container \
    --volume adb_container_volume:/u01/data \
    container-registry.oracle.com/database/adb-free:latest-23ai
    Hinweis

    Autonomous Database Serverless unterstützt auch 19c-Containerimages.
    • Geben Sie für 19c-Containerimagenamen das Tag latest als Datenbankversion an.

    • Um im obigen Beispiel das Autonomous Database Free Container Image 19c zu starten, verwenden Sie den folgenden Befehl im Imagenamentag:
      container-registry.oracle.com/database/adb-free:latest

    Im gesamten Dokument bezieht sich das Tag für den Bildnamen auf die Version latest-23ai.

  4. In diesem Beispiel wird davon ausgegangen, dass Sie Ihre Daten zuvor im Schema app_user erstellt haben.
  5. Exportieren Sie die Daten aus dem Schema von app_user in das Container-Volume.
    1. Melden Sie sich als ADMIN an, und erstellen Sie das Verzeichnis ORA_EXP_DIR, das auf /u01/data verweist.
      sqlplus admin/**************@myadw_high
       
      SQL> exec DBMS_CLOUD_CONTAINER_ADMIN.create_export_directory('/u01/data');
      
      SQL> select directory_path from dba_directories where directory_name='ORA_EXP_DIR';
      
      DIRECTORY_PATH
      --------------------------------------------------------------------------------
      /u01/data
    2. Führen Sie den Exportjob im Schemamodus und für ADMIN- und APP_USER-Schemas aus.
      SET scan off
      SET serveroutput ON
      SET escape off
        
      DECLARE
          h1 NUMBER;
          s VARCHAR2(1000):=NULL;
          errorvarchar VARCHAR2(100):= 'ERROR';
          tryGetStatus NUMBER := 0;
          success_with_info EXCEPTION;
          PRAGMA EXCEPTION_INIT(success_with_info, -31627);
      BEGIN
          h1 := dbms_datapump.OPEN(operation => 'EXPORT', job_mode => 'SCHEMA', job_name => 'EXPORT_MY_ADW_4', version => 'COMPATIBLE');
          tryGetStatus := 1;
          dbms_datapump.add_file(handle => h1, filename => 'EXPORT_MY_ADW.LOG', directory => 'ORA_EXP_DIR', filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);
          dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_EXPR', VALUE => 'IN(''ADMIN'', ''APP_USER'')');
          dbms_datapump.add_file(handle => h1, filename => 'MY_ADW_%L.DMP', directory => 'ORA_EXP_DIR', filesize => '500M',  filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_DUMP_FILE);
          dbms_datapump.start_job(handle => h1, skip_current => 0, abort_step => 0);
          dbms_datapump.detach(handle => h1);
          errorvarchar := 'NO_ERROR';
      EXCEPTION
          WHEN OTHERS THEN
          BEGIN
              IF ((errorvarchar = 'ERROR')AND(tryGetStatus=1)) THEN
                  DBMS_DATAPUMP.DETACH(h1);
              END IF;
          EXCEPTION
          WHEN OTHERS THEN
              NULL;
          END;
          RAISE;
      END;
      /
  6. Prüfen Sie den Export.

    Listen Sie die Dateien im Container /u01/data auf.

    podman exec -it source_adb_container bash
    cd /u01/data

    Prüfen Sie das Exportlog (export log), prüfen Sie, ob Fehler aufgetreten sind, und schließen Sie den Vorgang erfolgreich ab.

  7. Stoppen und entfernen Sie den Quellcontainer.
    podman stop source_adb_container
    podman rm source_adb_container
    Hinweis

    Die adb_container_volume wird bei Containerneustarts und -entfernungen aktiv
  8. Starten Sie einen Zielcontainer, der dasselbe Volume in /u01/data im Container einhängt.
    podman run -d \
    -p 1521:1522 \
    -p 1522:1522 \
    -p 8443:8443 \
    -p 27017:27017 \
    -e WORKLOAD_TYPE='ATP' \
    -e WALLET_PASSWORD=*** \
    -e ADMIN_PASSWORD=*** \
    --cap-add SYS_ADMIN \
    --device /dev/fuse \
    --name dest_adb_container \
    --volume adb_container_volume:/u01/data \
    container-registry.oracle.com/database/adb-free:latest-23ai
  9. Daten in Zielcontainer importieren.

    Melden Sie sich als ADMIN an, und erstellen Sie das Verzeichnis ORA_EXP_DIR, das auf /u01/data verweist.

    SQL> exec DBMS_CLOUD_CONTAINER_ADMIN.create_export_directory('/u01/data');
     
    PL/SQL procedure successfully completed.
     
    SQL> select directory_path from dba_directories where directory_name='ORA_EXP_DIR';
     
    DIRECTORY_PATH
    --------------------------------------------------------------------------------
    /u01/data
  10. Führen Sie die PL/SQL-Importbefehle aus.
    SET scan off
    SET serveroutput ON
    SET escape off
      
    DECLARE
        h1 NUMBER;
        s VARCHAR2(1000):=NULL;
        errorvarchar VARCHAR2(100):= 'ERROR';
        tryGetStatus NUMBER := 0;
        success_with_info EXCEPTION;
        PRAGMA EXCEPTION_INIT(success_with_info, -31627);
    BEGIN
        h1 := dbms_datapump.OPEN(operation => 'IMPORT', job_mode => 'SCHEMA', job_name => 'IMPORT_MY_ADW_4', version => 'COMPATIBLE');
        tryGetStatus := 1;
        dbms_datapump.add_file(handle => h1, filename => 'IMPORT_MY_ADW.LOG', directory => 'ORA_EXP_DIR', filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);
        dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_EXPR', VALUE => 'IN(''ADMIN'', ''APP_USER'')');
        dbms_datapump.add_file(handle => h1, filename => 'MY_ADW_%L.DMP', directory => 'ORA_EXP_DIR', filesize => '500M',  filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_DUMP_FILE);
        dbms_datapump.start_job(handle => h1, skip_current => 0, abort_step => 0);
        dbms_datapump.detach(handle => h1);
        errorvarchar := 'NO_ERROR';
    EXCEPTION
        WHEN OTHERS THEN
        BEGIN
            IF ((errorvarchar = 'ERROR')AND(tryGetStatus=1)) THEN
                DBMS_DATAPUMP.DETACH(h1);
            END IF;
        EXCEPTION
        WHEN OTHERS THEN
            NULL;
        END;
        RAISE;
    END;
    /
  11. Prüfen Sie das Importlog.
  12. Prüfen Sie die Importdaten.