Charger des données à l'aide des services hétérogènes d'Oracle

OracleDB pour Azure permet aux applications Azure de charger et d'interroger des données à partir de bases de données OCI. Cette architecture décrit comment un service Oracle Exadata Database Service on Dedicated Infrastructure peut tirer parti de l'infrastructure fournie par OracleDB for Azure pour charger des données à partir d'un serveur SQL Azure à l'aide d'un lien de base de données via les services hétérogènes Oracle fournis par Oracle Exadata Database Service on Dedicated Infrastructure.

Architecture

Cette architecture utilise Oracle Exadata Database Service on Dedicated Infrastructure pour charger et interroger les données d'un serveur Azure SQL Server avec un lien de base de données à l'aide des services hétérogènes Oracle exécutés sur Oracle Exadata Database Service on Dedicated Infrastructure.

Le diagramme suivant illustre cette architecture.



exadata-db-azure-odsa-heterogenous.zip

Avant de commencer

Avant de commencer, vérifiez les versions des principaux composants logiciels utilisés dans cette configuration, téléchargez le package logiciel requis et consultez la documentation du produit pour plus de détails.

Vérifier la configuration logicielle

Ces instructions sont testées sur les versions logicielles et matérielles suivantes.

  • Oracle Exadata Database Service on Dedicated Infrastructure X8M-2
  • Oracle Database 19.16

Téléchargez les packages logiciels suivants :

A propos des services et des rôles requis

Cette solution requiert les services suivants :

  • Oracle Exadata Database Service on Dedicated Infrastructure
  • Machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure

Il s'agit des rôles nécessaires pour chaque service.

Nom de service : rôle Obligatoire pour...
Oracle Exadata Database Service on Dedicated Infrastructure : sys con Configurez le lien de base de données.
Machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure : opc/root, oracle, grid Installez les pilotes ODBC Microsoft, installez les outils ODBC, configurez le processus d'écoute et configurez les services hétérogènes.

Reportez-vous à Découvrez comment obtenir les services Oracle Cloud pour les solutions Oracle afin d'obtenir les services cloud dont vous avez besoin.

Remarques concernant les services hétérogènes Oracle

Lors du chargement de données à l'aide des services hétérogènes d'Oracle, tenez compte de ces considérations.

  • La résolution du nom d'hôte par adresse IP pour l'adresse Azure SQL Server est requise par la base de données Oracle Exadata Database Service on Dedicated Infrastructure. Vous pouvez modifier le fichier /etc/hosts sur les noeuds de cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure ou configurer une zone DNS privée sur le réseau cloud virtuel OCI (VCN) où la base de données Oracle Exadata Database Service on Dedicated Infrastructure est configurée.
  • Dans les bases de données Oracle Exadata Database Service on Dedicated Infrastructure, le paramètre global_names est défini sur TRUE par défaut. Par conséquent, le nom de base de données qualifié complet doit être utilisé lors de la création du lien de base de données vers Azure SQL Server.
  • Les services hétérogènes Oracle sont inclus par défaut avec les bases de données Oracle Exadata Database Service on Dedicated Infrastructure. Cependant, un pilote Microsoft ODBC supplémentaire est nécessaire pour se connecter à une base de données tierce. Pour la base de données Azure SQL Server, le pilote Microsoft ODBC pour Microsoft SQL Server est recommandé.

Avantages des services hétérogènes Oracle

  • Les services hétérogènes Oracle sont développés et pris en charge par Oracle et sont inclus avec les images logicielles de base de données Oracle Exadata Database Service on Dedicated Infrastructure. Aucune licence Oracle supplémentaire n'est requise.
  • La communication entre Oracle Exadata Database Service on Dedicated Infrastructure et Azure SQL Server est entièrement cryptée de bout en bout. Aucune configuration supplémentaire n'est requise (chiffrement réseau appliqué par Azure SQL Server et les configurations par défaut d'Oracle Exadata Database Service on Dedicated Infrastructure).

Inconvénients des services hétérogènes Oracle

  • Des logiciels tiers supplémentaires doivent être installés sur Oracle Exadata Database Service on Dedicated Infrastructure (pilote Microsoft ODBC pour Microsoft SQL Server). Des étapes supplémentaires peuvent être nécessaires lors de la mise à jour et de la maintenance de l'environnement Oracle Exadata Database Service on Dedicated Infrastructure.
  • Les services hétérogènes Oracle sont exécutés sur la plate-forme Oracle Exadata Database Service on Dedicated Infrastructure, ce qui peut rendre la solution un peu plus chère, car la solution utilisera les OCPU Oracle Exadata Database Service on Dedicated Infrastructure plus spécialisées et à prix plus élevé pour charger et interroger les données d'Azure SQL Server.
  • La solution utilise le pilote Microsoft ODBC pour Microsoft SQL Server, qui nécessite une configuration manuelle pour la conversion et le mappage des types de données.

Configurer Oracle Database Gateway à l'aide des services hétérogènes d'Oracle

  1. Connectez-vous à la console Azure pour obtenir les informations de la base de données Azure SQL Server à partir de laquelle 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 pilote Microsoft ODBC comment se connecter à la base de données Azure SQL Server :
    Obtenez les informations suivantes :
    • Nom de base de données : nom de la base de données Azure SQL Server.
    • Nom de serveur entièrement qualifié : nom d'hôte complet pour SQL Server où la base de données Azure SQL Server est exécutée, généralement au format servername.database.windows.net.
    • Adresse privée Azure SQL Server : nom et adresse IP de l'adresse privée Azure SQL Server dans le réseau virtuel Azure qui se connecte à Azure SQL Server. S'il n'existe pas encore d'adresse privée, créez-en une pour Azure SQL Server et notez le nom et l'adresse IP.
    • Nom utilisateur Azure SQL Server : nom d'un utilisateur Azure SQL Server existant autorisé à se connecter à la base de données et au schéma Azure SQL Server, généralement sqladmin.
    • Mot de passe utilisateur Azure SQL Server : mot de passe de l'utilisateur Azure SQL Server pour se connecter à la base de données et au schéma Azure SQL Server.
  2. Dans le menu principal 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 serveur complet à partir de l'étape 1 afin de le résoudre en adresse IP d'adresse privée Azure SQL Server (à partir de l'étape 1).
  3. Dans le menu principal OCI, sélectionnez Networking/DNS Management pour créer une vue privée DNS. Ajoutez la zone DNS privée créée à l'étape précédente à cette vue privée DNS nouvellement créée et activez les modifications.
  4. Dans le menu principal OCI, sélectionnez Réseau réseau/réseau client virtuel (VCN). Sélectionnez le VCN créé lorsque le service Oracle Database Gateway Oracle Exadata Database Service on Dedicated Infrastructure a été provisionné (modifiez le compartiment si nécessaire). Cliquez sur le lien du résolveur DNS, puis ajoutez la vue privée DNS créée à l'étape précédente au résolveur DNS. Cela permettra la résolution de noms et d'adresses IP à partir d'Oracle Exadata Database Service on Dedicated Infrastructure vers la machine virtuelle Azure exécutant Oracle Database Gateway.
  5. Connectez-vous à l'un des noeuds de cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure pour utiliser nslookup afin de vérifier que la résolution du nom d'hôte par adresse IP fonctionne pour la machine virtuelle Azure qui exécutera Oracle Database Gateway.
    Par exemple :
    [opc@exa_dbnodex ~]$ nslookup servername.database.windows.net
    Server: 169.254.169.254
    Address: 169.254.169.254#53
    Non-authoritative answer:
    Name: servername.database.windows.net
    Address: IP_address_of_Azure_SQL_Server_private_endpoint
    [opc@exa_dbnodex ~]$
    Les variables de l'exemple ont les valeurs suivantes :
    • servername est le nom du serveur complet du serveur Azure SQL Server de l'étape 1.
    • IP_address_of_Azure_SQL_Server_private_endpoint est l'adresse IP de l'adresse privée Azure SQL Server de l'étape 1.
  6. Téléchargez les packages Microsoft (pilote ODBC Microsoft et outils SQL) téléchargés précédemment vers les noeuds de cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, installez les packages et configurez le pilote ODBC MicrosoftS pour Microsoft SQL Server. Pour obtenir des instructions, reportez-vous à Configuration et test du pilote Microsoft ODBC pour Microsoft SQL Server.
  7. Configurez les services hétérogènes Oracle pour connecter la base de données Oracle Exadata Database Service on Dedicated Infrastructure à Azure SQL Server à l'aide du pilote MS ODBC.
  8. Dans Oracle Exadata Database Service on Dedicated Infrastructure, la base de données pluggable (et non dans la base de données Conteneur), créez un lien de base de données vers la base de données Azure SQL Server. Le paramètre global_names est défini sur TRUE dans les bases de données Oracle Exadata Database Service on Dedicated Infrastructure par défaut. Par conséquent, le nom de base de données complet doit être utilisé pour créer le lien de base de données. Une fois le lien de base de données créé, vous pouvez interroger et charger des données de la base de données Azure SQL Server vers la base de données Oracle Exadata Database Service on Dedicated Infrastructure base de données pluggable à l'aide de ce lien.
    [opc@exadbnodex ~]$ sudo su - oracle
    Last login: Tue Sep 13 20:06:30 UTC 2022
    [oracle@exadbnodex ~]$ . ./exadb_name.env
    [oracle@exadbnodex ~]$sqlplus / as sysdba
    SQL> show pdbs;
    CON_ID CON_NAME OPEN MODE RESTRICTED
    ---------- ------------------------------ ---------- ----------
     2 PDB$SEED READ ONLY NO
     3 PDBName READ WRITE NO
    SQL> alter session set container=PDBName;
    Session altered.
    SQL>create public database 
    link Fully_Qualified_Server_Name connect to 
    "Azure_SQL_Server_Username" identified by 
    "Azure_SQL_User_password" using 
    'Database_Name';
    Database link created.
    Notez que le nom utilisateur et le mot de passe sont entre guillemets doubles (""), tandis que le nom de base de données Azure SQL Server est entre guillemets simples (' ').
    Les variables de l'exemple ont les valeurs suivantes :
    • exadb_name est le nom de la base de données Oracle Exadata Database Service on Dedicated Infrastructure.
    • PDBName est le nom de la base de données pluggable.
    • Fully_Qualified_Server_Name est le nom d'hôte complet du serveur SQL sur lequel la base de données Azure SQL Server est exécutée, à partir de l'étape 1.
    • Azure_SQL_Server_Username est le nom du nom utilisateur Azure SQL Server existant, issu de l'étape 1.
    • Azure_SQL_User_Password est le mot de passe de l'utilisateur Azure SQL Server pour se connecter à la base de données, à partir de l'étape 1.
    • Database_Name est le nom de la base de données Azure SQL Server, à partir de l'étape 1.
  9. Testez le lien nouvellement créé en exécutant une requête, par exemple :
    SQL> select count(*) from 
    some_table@DatabaseLink_Name;
    Les variables de l'exemple ont les valeurs suivantes :
    • some_table est le nom d'une table de la base de données à interroger.
    • DatabaseLink_Name est le nom du lien de base de données de l'étape 8.

Configurer et tester le pilote Microsoft ODBC pour Microsoft SQL Server

Ces étapes décrivent comment installer et configurer le pilote Microsoft ODBC pour Microsoft SQL Server sur les noeuds de cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure.

  1. Sur tous les noeuds du cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, installez le pilote Microsoft ODBC pour Microsoft SQL Server et les outils SQL Microsoft en exécutant les commandes suivantes.
    [opc@exa-dbnodex ~]$ sudo su -
    [root@exa-dbnodex ~]# rpm -ivh msodbcsql18-18.1.2.1-1.x86_64.rpm
    [root@exa-dbnodex ~]# rpm -ivh mssql-tools18-18.1.1.1-1.x86_64.rpm
  2. Une fois le pilote Microsoft ODBC pour Microsoft SQL Server installé sur les noeuds de cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, vérifiez que le pilote Microsoft ODBC est correctement chargé et configuré dans le système d'exploitation Oracle Linux.
    [oracle@exa-dbnodex ~]$ cat /etc/odbcinst.ini
    [PostgreSQL]
    Description=ODBC for PostgreSQL
    Driver=/usr/lib/psqlodbcw.so
    Setup=/usr/lib/libodbcpsqlS.so
    Driver64=/usr/lib64/psqlodbcw.so
    Setup64=/usr/lib64/libodbcpsqlS.so
    FileUsage=1
    [MySQL]
    Description=ODBC for MySQL
    Driver=/usr/lib/libmyodbc5.so
    Setup=/usr/lib/libodbcmyS.so
    Driver64=/usr/lib64/libmyodbc5.so
    Setup64=/usr/lib64/libodbcmyS.so
    FileUsage=1
    [ODBC Driver 18 for SQL Server]
    Description=Microsoft ODBC Driver 18 for SQL Server
    Driver=/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.1.so.2.1
    UsageCount=1
    [oracle@exa-dbnodex ~]$
  3. Sur tous les noeuds du cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, vérifiez qu'un lien logiciel entre /usr/lib64 et le pilote Microsoft ODBC pour Microsoft SQL a été créé automatiquement lors de l'installation du pilote. Si le lien n'a pas été créé, créez-le à l'aide de ln -s. Le lien se présente comme suit :
    [oracle@exa-dbnodex ~]$ ls -ltr /usr/lib64/libms*.so
    lrwxrwxrwx 1 root root 57 Nov 30 15:44 /usr/lib64/libmsodbcsql-18.so -> 
    /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.1.so.2.1
    [oracle@exa-dbnodex ~]$
  4. Sur tous les noeuds du cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, créez un fichier de configuration ODBC dans le répertoire de base utilisateur oracle :
    [oracle@exa-dbnodex ~]$ cat /home/oracle/.odbc.ini
    [Database_Name_From_Step_1]
    # Reference driver from the "/etc/odbcinst.ini" file.
    # Driver = FreeTDS
    # Or use a direct driver reference, rather than reference
    # one in the "/etc/odbcinst.ini" file.
    Driver=/usr/lib64/libmsodbcsql-18.so
    Description = MSSQL Server
    Server = Fully_Qualified_Server_Name_From_Step_1
    Database = Database_Name_From_Step_1
    Port = 1433
    [oracle@exa-dbnodex ~]$
    
    Les variables de l'exemple ont les valeurs suivantes :
    • Database_Name_From_Step_1 est le nom de la base de données Azure SQL Server, à partir de l'étape 1.
    • Fully_Qualified_Server_Name_From_Step_1 est le nom d'hôte complet de SQL Server, à l'étape 1.
  5. Sur tous les noeuds du cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, vérifiez la connectivité à la base de données Azure SQL Server à l'aide de l'utilitaire Oracle Linux isql.
    [oracle@exajc-gtdvz1 ~]$ isql -v 
    Database_Name_From_Step_1 Username 
    User_Password
    +---------------------------------------+
    | Connected! |
    | |
    | sql-statement |
    | help [tablename] |
    | quit |
    | |
    +---------------------------------------+
    SQL> select count(*) from some_table;
    Cette commande doit afficher le nombre de lignes sur la table sélectionnée.
    Les variables de l'exemple ont les valeurs suivantes :
    • Database_Name_From_Step_1 est le nom de la base de données Azure SQL Server, à partir de l'étape 1.
    • Username est le nom utilisateur du serveur Azure SQL Server, à l'étape 1.
    • User_Password est le mot de passe de l'utilisateur Azure SQL Server, à partir de l'étape 1.
    • some_table est un nom de table dans votre base de données.
  6. Sur tous les noeuds du cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, vérifiez la connectivité à la base de données Azure SQL Server à l'aide des outils SQL Microsoft.
    [oracle@exajc-gtdvz1 ~]$ /opt/mssql-tools18/bin/sqlcmd -D -S 
    Database_Name_From_Step_1 -U Username
    Password: User_Password
    1> select count(*) from some_table
    2> go 
    Cette commande doit afficher le nombre de lignes sur la table sélectionnée.
    Les variables de l'exemple ont les valeurs suivantes :
    • Database_Name_From_Step_1 est le nom de la base de données Azure SQL Server, à partir de l'étape 1.
    • Username est le nom utilisateur du serveur Azure SQL Server, à l'étape 1.
    • User_Password est le mot de passe de l'utilisateur Azure SQL Server, à partir de l'étape 1.
    • some_table est un nom de table dans votre base de données.
La connectivité entre Oracle Exadata Database Service on Dedicated Infrastructure et Azure SQL Server peut désormais être établie à partir du système d'exploitation Oracle Linux exécuté sur les noeuds Oracle Exadata Database Service on Dedicated Infrastructure à l'aide du pilote Microsoft ODBC pour Microsoft SQL Server à l'aide de l'interconnexion à latence rapide OracleDB for Azure entre Azure et OCI.

Configurer les services hétérogènes Oracle

Une fois la connectivité entre le système d'exploitation Oracle Linux d'Oracle Exadata Database Service on Dedicated Infrastructure et la base de données Azure SQL Server établie à l'aide du pilote Microsoft ODBC pour Microsoft SQL Server, configurez les services hétérogènes Oracle pour la base de données Oracle Exadata Database Service on Dedicated Infrastructure en suivant ces étapes.
  1. Sur tous les noeuds du cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, pour l'utilisateur oracle, créez un fichier de configuration pour que le pilote Microsoft ODBC se connecte à Azure SQL Server, avec les paramètres suivants :
    [oracle@exa-dbnodex ~]$ cat odbcDatabase_Name_From_Step_1.ini
    [Database_Name_From_Step_1]
    # Reference driver from the "/etc/odbcinst.ini" file.
    # Driver = FreeTDS
    # Or use a direct driver reference, rather than reference
    # one in the "/etc/odbcinst.ini" file.
    Driver=/usr/lib64/libmsodbcsql-18.so
    Description = MSSQL Server
    Server = Fully_Qualified_Server_Name_From_Step_1.DATABASE.WINDOWS.NET
    Database = Database_Name_From_Step_1
    Port = 1433
    [oracle@exa-dbnodex ~]$
    Les variables de l'exemple ont les valeurs suivantes :
    • Database_Name_From_Step_1 est le nom de la base de données Azure SQL Server, à partir de l'étape 1.
    • Fully_Qualified_Server_Name_From_Step_1 est le nom d'hôte complet de SQL Server sur lequel la base de données Azure SQL Server est exécutée, à partir de l'étape 1.
  2. Sur tous les noeuds du cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, créez un fichier de configuration pour les services hétérogènes de base de données Oracle Exadata Database Service on Dedicated Infrastructure. Ce fichier de configuration doit être créé dans le répertoire de base Oracle Database pour la base de données Oracle Exadata Database Service on Dedicated Infrastructure avec les paramètres suivants.
    [oracle@exa-dbnodex admin]$ pwd
    /u02/app/oracle/product/19.0.0.0/Database_Home/hs/admin
    [oracle@exajc-gtdvz1 admin]$ cat initDatabase_Name_From_Step_1.ora
    # This is a sample agent init file that contains the HS parameters that are
    # needed for the Database Gateway for ODBC
    #
    # ODBC specific environment variables
    #
    set ODBCINI=/home/oracle/odbcDatabase_Name_From_Step_1.ini
    #
    # HS init parameters
    #
    HS_FDS_CONNECT_INFO=Database_Name_From_Step_1
    HS_FDS_TRACE_LEVEL=OFF
    HS_FDS_SHAREABLE_NAME=/usr/lib64/libodbc.so
    HS_NLS_NCHAR=UCS2
    HS_LANGUAGE=ENGLISH_AMERICA.we8mswin1252
    HS_DB_NAME=Server_Name (only the hostname)
    HS_DB_DOMAIN=DATABASE.WINDOWS.NET
    Dans cette liste de paramètres, notez les points suivants :
    • /usr/lib64/libodbc.os est le pilote ODBC inclus avec Oracle Linux dans Oracle Exadata Database Service on Dedicated Infrastructure. Ce pilote inclut des fonctions de base telles que SQLColAttribute qui sont appelées par le pilote ODBC pour Microsoft SQL Server.
    • Oracle Heterogeneous Services appelle le pilote Microsoft ODBC conformément au paramètre ODBCINI, qui pointe vers le fichier de configuration ODBC créé à l'étape précédente.
    • La valeur Server_Name fournie dans le paramètre HS_DB_NAME doit être en lettres majuscules.
    • Les valeurs de paramètre HS_NLS_NCHAR et HS_LANGUAGE saisies ici dépendent des jeux de caractères utilisés pour créer les bases de données Azure SQL Server et Oracle Exadata Database Service on Dedicated Infrastructure.
    Les variables de l'exemple ont les valeurs suivantes :
    • Database_Name_From_Step_1 est le nom de la base de données Azure SQL Server, à partir de l'étape 1.
    • Database_Home est le nom du répertoire de base de base de données.
    • Server_Name est le nom d'hôte du nom de serveur complet, à partir de l'étape 1.
  3. Sur tous les noeuds du cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, ajoutez les lignes suivantes au fichier tnsnames.ora afin que la base de données puisse être résolue en services hétérogènes Oracle.
    [oracle@exa-dbnodex ~]$ cd $ORACLE_HOME/network/admin/exa_dbname
    [oracle@exa-dbnodex exa_dbname]$ tail -6 tnsnames.ora
    Database_Name_From_Step_1 =
     (DESCRIPTION=
     (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1522))
     (CONNECT_DATA=(SID=Database_Name_From_Step_1))
     (HS=OK)
     )
    Les variables de l'exemple ont les valeurs suivantes :
    • exa_dbname est le nom de la base de données Oracle Exadata Database Service on Dedicated Infrastructure.
    • Database_Name_From_Step_1 est le nom de la base de données Azure SQL Server, à partir de l'étape 1.
  4. Sur les deux noeuds du cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, créez un processus d'écoute local sur le port 1522 pour les services hétérogènes Oracle en créant un fichier listener.ora sur le répertoire de base de base de données de la base de données Oracle Exadata Database Service on Dedicated Infrastructure.
    [oracle@exa-dbnodex exa_dbname]$ pwd
    /u02/app/oracle/product/19.0.0.0/Database_Home/network/admin/exa_db
    name
    [oracle@exa-dbnodex]$ cat listener.ora
    # This is a sample listener.ora that contains the NET8 parameters that are
    # needed to connect to an HS Agent
    LISTENER_Database_Name_From_Step_1 =
    (DESCRIPTION_LIST=
     (DESCRIPTION=
     (ADDRESS=(PROTOCOL=tcp)(HOST=exa-dbnodex)(PORT=1522))
     )
    )
    SID_LIST_LISTENER_Database_Name_From_Step_1=
     (SID_LIST=
     (SID_DESC=
     (SID_NAME=Database_Name_From_Step_1)
     (ORACLE_HOME=/u02/app/oracle/product/19.0.0.0/Database_Home)
     (PROGRAM=dg4odbc)
     )
     )
    Les variables de l'exemple ont les valeurs suivantes :
    • exa_dbname est le nom de la base de données Oracle Exadata Database Service on Dedicated Infrastructure.
    • Database_Name_From_Step_1 est le nom de la base de données Azure SQL Server, à partir de l'étape 1.
    • Database_Home est le nom du répertoire de base de base de données.
  5. Sur un noeud du cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, ajoutez le nouveau processus d'écoute local à Oracle Cluster Ready Services (CRS) en tant qu'utilisateur root.
    Par exemple :
    [root@exa-dbnodex bin]# ./srvctl add listener -l 
    LISTENER_Database_Name_From_Step_1 -oraclehome 
    /u02/app/oracle/product/19.0.0.0/Database_Home -user oracle
    [root@exa-dbnodex bin]# ./srvctl setenv listener -l 
    LISTENER_Database_Name_From_Step_1 -T 
    "TNS_ADMIN=/u02/app/oracle/product/19.0.0.0/Database_Home/network/a
    dmin/>exa_dbname "
    [root@exajc-gtdvz1 bin]# ./srvctl status listener -l 
    LISTENER_Database_Name_From_Step_1
    Listener LISTENER_Database_Name_From_Step_1 is enabled
    Listener LISTENER_Database_Name_From_Step_1 is not running
    Les variables de l'exemple ont les valeurs suivantes :
    • Database_Name_From_Step_1 est le nom de la base de données Azure SQL Server, à partir de l'étape 1.
    • Database_Home est le nom du répertoire de base de base de données.
    • exa_dbname est le nom de la base de données Oracle Exadata Database Service on Dedicated Infrastructure.
  6. Sur un noeud du cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, démarrez le processus d'écoute en tant que grid user.
    [grid@exa-dbnodex bin]$ srvctl start listener -l 
    LISTENER_Database_Name_From_Step_1
    [grid@exa-dbnodex bin]$ srvctl status listener -l 
    LISTENER_Database_Name_From_Step_1
    Listener LISTENER_Database_Name_From_Step_1 is enabled
    Listener LISTENER_Database_Name_From_Step_1 is running on node(s): exa-dbnode2,exa-dbnode1
    [grid@exa-dbnodex bin]$
    Dans l'exemple, Database_Name_From_Step_1 est le nom de la base de données Azure SQL Server, à partir de l'étape 1.
  7. Sur un noeud du cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, vérifiez que le processus d'écoute local écoute effectivement les services hétérogènes Oracle en tant qu'utilisateur oracle.
    [opc@exa-dbnodex ~]$ sudo su - oracle
    Last login: Fri Dec 2 17:38:17 UTC 2022
    [oracle@exa-dbnodex ~]$ . ./exa_dbname.env
    [oracle@exa-dbnodex ~]$ lsnrctl status LISTENER_Database_Name_From_Step_1
    LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 02-DEC-2022 17:38:46
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=exa-dbnodex)(PORT=1522)))
    STATUS of the LISTENER
    ------------------------
    Alias LISTENER_Database_Name_From_Step_1
    Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
    Start Date 02-DEC-2022 17:38:07
    Uptime 0 days 0 hr. 0 min. 38 sec
    Trace Level off
    Security ON: Local OS Authentication
    SNMP OFF
    Listener Parameter 
    File /u02/app/oracle/product/19.0.0.0/<Database_Home>/network/admin/exa_dbname/listener.ora
    Listener Log File /u02/app/oracle/diag/tnslsnr/exa-dbnodex/listener_Database_Name_From_Step_1/alert/log.xml
    Listening Endpoints Summary...
     (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=exa-dbnodex.customersubnet1.cvcn.oraclevcn.com)(PORT=1522)))
    Services Summary...
    Service "Database_Name_From_Step_1" has 1 instance(s).
     Instance "Database_Name_From_Step_1", status UNKNOWN, has 1 handler(s) 
    for this service...
    The command completed successfully
    [oracle@exa-dbnodex ~]$
    Les variables de l'exemple ont les valeurs suivantes :
    • exa_dbname est le nom de la base de données Oracle Exadata Database Service on Dedicated Infrastructure.
    • Database_Name_From_Step_1 est le nom de la base de données Azure SQL Server, à partir de l'étape 1.
  8. A partir de l'un des noeuds de cluster de machines virtuelles Oracle Exadata Database Service on Dedicated Infrastructure, testez la connectivité aux services hétérogènes Oracle à l'aide de tnsping.
    Par exemple :
    [oracle@exa-dbnodex ~]$ tnsping Database_Name_From_Step_1
    TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 02-DEC-2022 19:25:15
    Used parameter files:
    /u02/app/oracle/product/19.0.0.0/Database_Home/network/admin/exa_db
    name/sqlnet.ora
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION= 
    (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1522)) 
    (CONNECT_DATA=(SID=Database_Name_From_Step_1)) (HS=OK))
    OK (0 msec)
    [oracle@exajc-gtdvz1 ~]$
    Les variables de l'exemple ont les valeurs suivantes :
    • Database_Name_From_Step_1 est le nom de la base de données Azure SQL Server, à partir de l'étape 1.
    • Database_Home est le nom du répertoire de base de base de données.
    • exa_dbname est le nom de la base de données Oracle Exadata Database Service on Dedicated Infrastructure.