Oracle Exadata Database Service on Dedicated Infrastructure und Azure Blob Storage integrieren

  1. Melden Sie sich bei der Azure-Konsole an, um Informationen für den Azure-Blob-Speicher abzurufen, aus dem die Oracle Exadata Database Service on Dedicated Infrastructure-Datenbank Daten lädt und abfragt. Diese Informationen sind erforderlich, um dem DBMS_CLOUD-Package mitzuteilen, wie eine Verbindung zu den Azure Blob Storage-Objekten hergestellt wird.
    Rufen Sie die folgenden Details auf:
    • Azure Blob-Zugangsdaten: Benutzername und Kennwort für den Zugriff auf Azure Blob Storage.
    • Azure Blob Storage Name: Name des Azure Blob Storage, in dem Daten gespeichert werden, normalerweise im Format blobstoragename.blob.core.windows.net.
    • Azure-Blob-URL: URL für den Azure-Blob-Speicher, in dem Daten gespeichert werden, normalerweise im Format https://blobstoragename.blob.core.windows.net/dirname/object_name.
    • Privater Azure-Blob-Endpunkt: IP-Adresse des privaten Endpunkts Azure-Blob-Speicher. Wenn kein privater Endpunkt vorhanden ist, erstellen Sie einen Endpunkt, und notieren Sie sich die IP-Adresse.
  2. Wählen Sie im OCI-Menü die Option Networking/DNS-Verwaltung aus, um eine private DNS-Zone zu erstellen. Fügen Sie in der neuen privaten DNS-Zone einen Datensatz für den Azure Blob Storage-Namen aus Schritt 1 hinzu, um die IP-Adresse des privaten Azure Blob-Endpunkts aus Schritt 1 aufzulösen.
  3. Wählen Sie im OCI-Menü die Option Networking/DNS-Verwaltung aus, und erstellen Sie eine private DNS-Ansicht. Fügen Sie die in Schritt 2 erstellte private DNS-Zone zu dieser neu erstellten privaten DNS-Ansicht hinzu, und aktivieren Sie die Änderungen.
  4. Wählen Sie im OCI-Menü die Option Networking/Virtuelles Clientnetzwerk (VCN) aus. Wählen Sie das VCN aus, das beim Provisioning der OracleDB für Azure für Oracle Exadata Database Service on Dedicated Infrastructure erstellt wurde (ändern Sie gegebenenfalls das Compartment). Wählen Sie den Link "DNS-Resolver" aus, und fügen Sie die zuvor erstellte private DNS-Ansicht zum DNS-Resolver hinzu.
    Dadurch werden Name und IP-Adresse von Oracle Exadata Database Service on Dedicated Infrastructure auf den privaten Endpunkt von Azure Blob Storage aufgelöst.
  5. Log in to one of the Oracle Exadata Database Service on Dedicated Infrastructure VM Cluster nodes to use the nslookup command to verify the hostname to IP address resolution is working for the Azure SQL Server hostname and private endpoint IP.
    Beispiel:
    [opc@exa_dbnodex ~]$ nslookup blobstoragename.blob.core.windows.net
    Server: 169.254.169.254
    Address: 169.254.169.254#53
    Non-authoritative answer:
    Name: blobstoragename.blob.core.windows.net
    Address: IP_address_of_Azure_Blob_private_endpoint
     [opc@exa_dbnodex ~]$
    Die Variablen im Beispiel haben die folgenden Werte:
    • blobstoragename ist der Azure Blob Storage-Name aus Schritt 1.
    • IP_address_of_Azure_Blob_private_endpoint ist die IP-Adresse des privaten Azure-Blob-Endpunkts aus Schritt 1.
  6. Melden Sie sich bei der integrierbaren Datenbank Oracle Exadata Database Service on Dedicated Infrastructure an, um einen Benutzer mit der Rolle cloud_user zu erstellen oder auszuwählen. Notieren Sie sich den Benutzernamen und das Kennwort des Benutzers. Benutzer mit der Rolle cloud_user haben die Berechtigung, das Package DBMS_CLOUD zu verwenden.
  7. Installieren Sie das Package DBMS_CLOUD in der Oracle Exadata Database Service on Dedicated Infrastructure-Datenbank 19c oder neuer, indem Sie dem My Oracle Support-Artikel How to Setup and Use DBMS_CLOUD Package (Doc ID 2748362.1) folgen. Weitere Informationen finden Sie im Abschnitt "Dokumentation prüfen". Beachten Sie Folgendes, wenn Sie das DBMS_CLOUD-Package installieren:
    • Verwenden Sie im My Oracle Support-Artikelabschnitt Einem Benutzer oder einer Rolle die Mindestberechtigungen für die Verwendung von DBMS_CLOUD erteilen den in Schritt 6 erstellten Benutzernamen.
    • In diesem Schritt fügen Sie im My Oracle Support-Artikelabschnitt SSL-Wallet mit Zertifikaten erstellen Root-Zertifikate zum SSL-Wallet hinzu. You can skip the creation of the wallet step because Oracle Exadata Database Service on Dedicated Infrastructure already has a wallet to manage SSL certificates (the Grid Wallet). Fügen Sie stattdessen die Root-Zertifikate zum Grid Wallet hinzu, das sich in /var/opt/oracle/dbaas_acfs/grid/tcps_wallets befindet. Sie benötigen das Grid Wallet-Kennwort, um die Root-Zertifikate hinzuzufügen. Weitere Informationen zum Abrufen des Grid Wallet-Kennworts finden Sie im My Oracle Support-Artikel Kennwort von ASM und Wallets abrufen (Dok.-ID 2814361.1) im Abschnitt "Dokumentation prüfen".
  8. Melden Sie sich bei der integrierbaren Oracle Exadata Database Service on Dedicated Infrastructure-Datenbank an, um Azure-Zugangsdaten mit dem Package DBMS_CLOUD zu erstellen, das im vorherigen Schritt installiert wurde.
    [opc@exa-dbnodex ~]$ sudo su - oracle
    Last login: Tue Sep 13 20:06:30 UTC 2022
    [oracle@exa-dbnodex ~]$ . ./exa_dbname.env
    [oracle@exa-dbnodex ~]$sqlplus
    Username_From_Step_6/Password_From_Step_6@'(DESCRIPTION
    =(ADDRESS=(PROTOCOL=TCP)(HOST=exascan.customersubnet1.cvcn.oraclevcn.com)
    (PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=pdbna
    me.customersubnet1.cvcn.oraclevcn.com)(FAILOVER_MODE=(TYPE=select)(MET
    HOD=basic))))'
    SQL>BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'AZ_CRED',
    username => 'Azure_Blob_Storage_Username_from_Step_1',
    password => ‘Azure_Blob_Storage_Password_from_Step_1' );
    END;
    /
    Die Variablen im Beispiel haben die folgenden Werte:
    • exadb_name ist der Name der Oracle Exadata Database Service on Dedicated Infrastructure-Datenbank.
    • Username_From_Step_6 ist der Benutzername aus Schritt 6.
    • Password_From_Step_6 ist das Kennwort aus Schritt 6.
    • pdbname ist der Name der integrierbaren Datenbank.
    • Azure_Blob_Storage_Username_from_Step_1 ist der Azure Blob Storage-Benutzername aus Schritt 1.
    • Azure_Blob_Storage_Password_from_Step_1 ist das Azure Blob Storage-Kennwort aus Schritt 1.
  9. Nachdem die Azure-Zugangsdaten erstellt wurden, erstellen Sie wie folgt eine externe Tabelle für den Zugriff auf die Azure Blob Storage-Objekte:
    SQL>BEGIN
     DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
    table_name =>'Table_Name',
    credential_name =>'AZ_CRED',
    file_uri_list => 'Azure_Blob_URL_From_Step_1',
    format => json_object('delimiter' value ','),
    column_list => 'Column1_Name Type, Column2_Name Type,
    Column3_Name Type' );
    END;
    /
    Beispiel: Wenn das Blob-Objekt für den Zugriff eine durch Komma getrennte Textdatei mit 3 Spalten ist, kann der Befehl folgendermaßen aussehen:
    SQL>BEGIN
     DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
    table_name =>'CHANNELS_EXT',
    credential_name =>'AZ_CRED',
    file_uri_list
    =>'https://odsaexternaltables.blob.core.windows.net/data/channels.txt',
    format => json_object('delimiter' value ','),
    column_list => 'CHANNEL_ID NUMBER, CHANNEL_DESC VARCHAR2(20),
    CHANNEL_CLASS VARCHAR2(20)' );
    END;
    /
  10. Run a query to verify the Oracle Exadata Database Service on Dedicated Infrastructure pluggable database can query the tables created above.
    Beispiel:
    select count(*) from Table_Name
    Table_Name ist der Name einer Tabelle in der abzufragenden Datenbank.