Intégrer Oracle Exadata Database Service on Dedicated Infrastructure et Azure Blob Storage

  1. Connectez-vous à la console Azure pour obtenir des informations sur le stockage Azure Blob à partir duquel la base de données Oracle Exadata Database Service on Dedicated Infrastructure chargera et interrogera les données. Ces informations sont requises pour indiquer au package DBMS_CLOUD comment se connecter aux objets Azure Blob Storage.
    Obtenez les détails suivants :
    • Informations d'identification Azure Blob : nom utilisateur et mot de passe permettant d'accéder à Azure Blob Storage.
    • Nom de stockage Azure Blob : nom du stockage Azure Blob dans lequel les données sont stockées, généralement au format blobstoragename.blob.core.windows.net.
    • URL Azure Blob : URL du stockage Azure Blob dans lequel les données sont stockées, généralement au format https://blobstoragename.blob.core.windows.net/dirname/object_name.
    • Adresse privée Azure Blob : adresse IP de l'adresse privée Azure Blob Storage. Si aucune adresse privée n'existe, créez-en une et notez l'adresse IP.
  2. Dans le menu OCI, sélectionnez Networking/DNS Management pour créer une zone DNS privée. Dans la nouvelle zone DNS privée, ajoutez un enregistrement pour le nom de stockage Azure Blob à partir de l'étape 1, afin de résoudre l'adresse IP d'adresse privée Azure Blob à partir de l'étape 1.
  3. Dans le menu OCI, sélectionnez Networking/DNS Management et créez une vue privée DNS. Ajoutez la zone DNS privée créée à l'étape 2 à cette vue privée DNS nouvellement créée et activez les modifications.
  4. Dans le menu OCI, sélectionnez Réseau réseau/réseau client virtuel (VCN). Sélectionnez le VCN créé lorsque le OracleDB pour Azure pour Oracle Exadata Database Service on Dedicated Infrastructure a été provisionné (modifiez le compartiment si nécessaire). Sélectionnez le lien de résolveur DNS, puis ajoutez la vue privée DNS créée précédemment au résolveur DNS.
    Cela permet la résolution de noms et d'adresses IP d'Oracle Exadata Database Service on Dedicated Infrastructure vers l'adresse privée Azure Blob Storage.
  5. Connectez-vous à l'un des noeuds de cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure pour utiliser la commande nslookup afin de vérifier que la résolution du nom d'hôte par adresse IP fonctionne pour le nom d'hôte Azure SQL Server et l'adresse IP d'adresse privée.
    Par exemple :
    [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 ~]$
    Les variables de l'exemple présentent les valeurs suivantes :
    • blobstoragename est le nom Azure Blob Storage de l'étape 1.
    • IP_address_of_Azure_Blob_private_endpoint est l'adresse IP de l'adresse privée Azure Blob à partir de l'étape 1.
  6. Connectez-vous à la base de données pluggable Oracle Exadata Database Service on Dedicated Infrastructure pour créer ou sélectionner un utilisateur disposant du rôle cloud_user. Notez le nom utilisateur et le mot de passe de l'utilisateur. Les utilisateurs dotés du rôle cloud_user ont le privilège d'utiliser le package DBMS_CLOUD.
  7. Installez le package DBMS_CLOUD sur la base de données Oracle Exadata Database Service on Dedicated Infrastructure 19c ou une version plus récente en suivant l'article My Oracle Support How to Setup and Use DBMS_CLOUD Package (ID de document 2748362.1). Pour plus d'informations, reportez-vous à la section Consulter la documentation. Tenez compte des points suivants lors de l'installation du package DBMS_CLOUD :
    • Dans la section de l'article My Oracle Support Accordez les privilèges minimaux à un utilisateur ou à un rôle pour utiliser DBMS_CLOUD, utilisez le nom utilisateur créé à l'étape 6.
    • Dans la section d'article My Oracle Support Créer un portefeuille SSL avec des certificats, cette étape ajoutera des certificats racine au portefeuille SSL. Vous pouvez ignorer la création de l'étape de portefeuille car Oracle Exadata Database Service on Dedicated Infrastructure dispose déjà d'un portefeuille pour gérer les certificats SSL (portefeuille Grid). Vous devez plutôt ajouter les certificats racine au portefeuille de grille, situé dans /var/opt/oracle/dbaas_acfs/grid/tcps_wallets. Vous aurez besoin du mot de passe du portefeuille Grid pour ajouter les certificats racine. Reportez-vous à l'article My Oracle Support Get Password of ASM and Wallets (ID de document 2814361.1) dans la section Review Documentation pour plus d'informations sur l'obtention du mot de passe du portefeuille de grille.
  8. Connectez-vous à la base de données pluggable Oracle Exadata Database Service on Dedicated Infrastructure pour créer des informations d'identification Azure à l'aide du package DBMS_CLOUD installé à l'étape précédente.
    [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;
    /
    Les variables de l'exemple présentent les valeurs suivantes :
    • exadb_name est le nom de la base de données Oracle Exadata Database Service on Dedicated Infrastructure.
    • Username_From_Step_6 est le nom utilisateur de l'étape 6.
    • Password_From_Step_6 est le mot de passe de l'étape 6.
    • pdbname est le nom de la base de données pluggable.
    • Azure_Blob_Storage_Username_from_Step_1 est le nom utilisateur Azure Blob Storage de l'étape 1.
    • Azure_Blob_Storage_Password_from_Step_1 est le mot de passe Azure Blob Storage de l'étape 1.
  9. Une fois les informations d'identification Azure créées, créez une table externe pour accéder aux objets Azure Blob Storage comme suit :
    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;
    /
    Par exemple, si l'objet Blob auquel accéder est un fichier texte séparé par des virgules avec 3 colonnes, la commande peut ressembler à ce qui suit :
    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. Exécutez une requête pour vérifier que la base de données pluggable Oracle Exadata Database Service on Dedicated Infrastructure peut interroger les tables créées ci-dessus.
    Par exemple :
    select count(*) from Table_Name
    Table_Name est le nom d'une table de la base de données à interroger.