Caricamento dei dati mediante i servizi Oracle eterogenei

OracleDB per Azure consente alle applicazioni Azure di caricare ed eseguire query sui dati dai database OCI. Questa architettura descrive in che modo un Oracle Exadata Database Service on Dedicated Infrastructure può utilizzare l'infrastruttura fornita da OracleDB for Azure per caricare i dati da un server SQL Azure utilizzando un database link tramite i servizi Oracle Heterogeni forniti da Oracle Exadata Database Service on Dedicated Infrastructure.

Architettura

Questa architettura utilizza Oracle Exadata Database Service on Dedicated Infrastructure per caricare ed eseguire query sui dati da un Azure SQL Server con un database link che utilizza Oracle Heterogene Services in esecuzione su Oracle Exadata Database Service on Dedicated Infrastructure.

Il diagramma riportato di seguito illustra questa architettura.



exadata-db-azure-odsa-heterogenous.zip

Informazioni preliminari

Prima di iniziare, controllare le versioni dei principali componenti software utilizzati in questa installazione, scaricare il pacchetto software richiesto e consultare la documentazione del prodotto per riferimento futuro.

Esaminare i requisiti software

Queste istruzioni vengono testate sulle seguenti versioni software e hardware.

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

Scaricare i seguenti pacchetti software:

Informazioni sui servizi e i ruoli richiesti

Questa soluzione richiede i seguenti servizi:

  • Oracle Exadata Database Service on Dedicated Infrastructure
  • Oracle Exadata Database Service on Dedicated Infrastructure Virtual Machine

Si tratta dei ruoli necessari per ogni servizio.

Nome servizio: ruolo Richiesto per...
Oracle Exadata Database Service on Dedicated Infrastructure: sys con Configurare il database link.
Oracle Exadata Database Service on Dedicated Infrastructure Virtual Machine: opc/root, oracle, grid Installare i driver ODBC Microsoft, installare gli strumenti ODBC, configurare il listener e configurare i servizi eterogenei.

Consulta Scopri come ottenere i servizi Oracle Cloud per le soluzioni Oracle per ottenere i servizi cloud di cui hai bisogno.

Considerazioni per i servizi eterogenei Oracle

Quando si caricano dati utilizzando i servizi Oracle Heterogene, tenere presenti queste considerazioni.

  • Il nome host per la risoluzione degli indirizzi IP per l'endpoint di Azure SQL Server è richiesto dal database Oracle Exadata Database Service on Dedicated Infrastructure. È possibile modificare il file /etc/hosts nei nodi cluster VM Oracle Exadata Database Service on Dedicated Infrastructure o configurare una zona DNS privata nella rete cloud virtuale (VCN) OCI in cui è configurato il database Oracle Exadata Database Service on Dedicated Infrastructure.
  • Nei database Oracle Exadata Database Service on Dedicated Infrastructure il parametro global_names è impostato su TRUE per impostazione predefinita. Pertanto, è necessario utilizzare il nome del database completamente qualificato quando si crea il database link a Azure SQL Server.
  • Oracle Heterogene Services è incluso per impostazione predefinita con i database Oracle Exadata Database Service on Dedicated Infrastructure. Tuttavia, per connettersi a un database di terze parti è necessario un driver ODBC aggiuntivo Microsoft. Per il database Azure SQL Server, si consiglia di utilizzare il driver Microsoft ODBC per Microsoft SQL Server.

Vantaggi dei servizi Oracle eterogenei

  • Oracle Heterogene Services è sviluppato e supportato da Oracle ed è incluso nelle immagini software del database Oracle Exadata Database Service on Dedicated Infrastructure. Non sono necessarie licenze Oracle aggiuntive.
  • La comunicazione tra Oracle Exadata Database Service on Dedicated Infrastructure e Azure SQL Server è completamente cifrata end-to-end, non è richiesta alcuna configurazione aggiuntiva (crittografia di rete applicata da Azure SQL Server e configurazioni predefinite di Oracle Exadata Database Service on Dedicated Infrastructure).

Svantaggi dei servizi Oracle eterogenei

  • È necessario installare altri software di terze parti su Oracle Exadata Database Service on Dedicated Infrastructure (Driver Microsoft ODBC per Microsoft SQL Server). Durante l'aggiornamento e la manutenzione dell'ambiente Oracle Exadata Database Service on Dedicated Infrastructure possono essere necessari ulteriori passi.
  • Oracle Heterogene Services viene eseguito sulla piattaforma Oracle Exadata Database Service on Dedicated Infrastructure, che può rendere la soluzione un po' più costosa, poiché la soluzione utilizzerà le OCPU Oracle Exadata Database Service on Dedicated Infrastructure più specializzate e a un prezzo più alto per caricare ed eseguire query sui dati da Azure SQL Server.
  • La soluzione utilizza il driver Microsoft ODBC per Microsoft SQL Server che richiede una configurazione manuale per la conversione e il mapping dei tipi di dati.

Configurare Oracle Database Gateway utilizzando i servizi eterogenei Oracle

  1. Eseguire il login alla console di Azure per ottenere le informazioni per il database di Azure SQL Server da cui il database di Oracle Exadata Database Service on Dedicated Infrastructure caricherà e interrogherà i dati. Queste informazioni sono necessarie per indicare al driver Microsoft ODBC come connettersi al database Azure SQL Server:
    Ottenere i seguenti dettagli:
    • Nome database: il nome del database Azure SQL Server.
    • Nome server completamente qualificato: nome host completamente qualificato per SQL Server in cui è in esecuzione il database di Azure SQL Server, in genere nel formato servername.database.windows.net.
    • Azure SQL Server Endpoint privato: il nome e l'indirizzo IP dell'endpoint privato di Azure SQL Server in Azure vnet che si connette a Azure SQL Server. Se non esiste ancora un endpoint privato, crearne uno per Azure SQL Server e prendere nota del nome e dell'indirizzo IP.
    • Nome utente di Azure SQL Server: nome di un utente di Azure SQL Server esistente autorizzato a connettersi al database e allo schema di Azure SQL Server, in genere sqladmin.
    • Password utente di Azure SQL Server: password dell'utente di Azure SQL Server per connettersi al database e allo schema di Azure SQL Server.
  2. Dal menu principale di OCI, selezionare Networking/DNS Management per creare una zona DNS privata. Nella nuova zona DNS privata, aggiungere un record per il nome server completamente qualificato dal passo 1 per risolvere l'indirizzo IP dell'endpoint privato di Azure SQL Server (dal passo 1).
  3. Dal menu principale di OCI, selezionare Gestione di rete/DNS per creare una vista privata DNS. Aggiungere la zona DNS privata creata nel passo precedente a questa vista privata DNS appena creata e attivare le modifiche.
  4. Nel menu principale di OCI selezionare Networking/Virtual Client Network (VCN). Selezionare la VCN creata al momento del provisioning del servizio Oracle Database Gateway Oracle Exadata Database Service on Dedicated Infrastructure (se necessario, modificare il compartimento). Fare clic sul collegamento al resolver DNS, quindi aggiungere la vista privata DNS creata dal passo precedente al resolver DNS. Ciò consentirà la risoluzione di nomi e indirizzi IP da Oracle Exadata Database Service on Dedicated Infrastructure alla VM Azure su cui è in esecuzione Oracle Database Gateway.
  5. Eseguire il login a uno dei nodi cluster VM di Oracle Exadata Database Service on Dedicated Infrastructure per utilizzare nslookup per verificare che il nome host e la risoluzione degli indirizzi IP funzionino per la virtual machine Azure che eseguirà Oracle Database Gateway.
    Ad esempio:
    [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 ~]$
    Le variabili nell'esempio sono i seguenti:
    • nome server è il nome del server completamente qualificato di Azure SQL Server dal passo 1.
    • IP_address_of_Azure_SQL_Server_private_endpoint è l'indirizzo IP dell'endpoint privato di Azure SQL Server dal passo 1.
  6. Caricare i package Microsoft (driver ODBC Microsoft e strumenti SQL) scaricati in precedenza nei nodi cluster VM di Oracle Exadata Database Service on Dedicated Infrastructure, installare i package e configurare il driver ODBC MicrosoftS per Microsoft SQL Server. Per istruzioni, vedere Configure and Test di Microsoft ODBC Driver for Microsoft SQL Server.
  7. Configurare Oracle Heterogene Services per connettere il database Oracle Exadata Database Service on Dedicated Infrastructure a Azure SQL Server utilizzando MS ODBC Driver.
  8. In Oracle Exadata Database Service on Dedicated Infrastructure PDB (pluggable database) (non nel CDB) crea un database link al database Azure SQL Server. Il parametro global_names è impostato su TRUE nei database Oracle Exadata Database Service on Dedicated Infrastructure per impostazione predefinita, pertanto per creare il database link è necessario utilizzare il nome del database completamente qualificato. Dopo aver creato il database link, è possibile eseguire query e caricare i dati dal database Azure SQL Server al Oracle Exadata Database Service on Dedicated Infrastructure pluggable database (PDB) utilizzando questo collegamento.
    [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.
    Il nome utente e la password sono racchiusi tra virgolette (" "), mentre il nome del database Azure SQL Server è racchiuso tra apici (' ').
    Le variabili nell'esempio sono i seguenti:
    • exadb_name è il nome del database Oracle Exadata Database Service on Dedicated Infrastructure.
    • PDBName è il nome del pluggable database.
    • Fully_Qualified_Server_Name è il nome host completamente qualificato per il server SQL in cui è in esecuzione il database Azure SQL Server dal passo 1.
    • Azure_SQL_Server_Username è il nome del nome utente Azure SQL Server esistente, a partire dal passo 1.
    • Azure_SQL_User_Password è la password per l'utente di Azure SQL Server per connettersi al database dal passo 1.
    • Database_Name è il nome del database di Azure SQL Server, dal passo 1.
  9. Eseguire il test del collegamento appena creato eseguendo una query, ad esempio:
    SQL> select count(*) from 
    some_table@DatabaseLink_Name;
    Le variabili nell'esempio sono i seguenti:
    • some_table è il nome di una tabella del database su cui eseguire la query.
    • DatabaseLink_Name è il nome del database link dal passo 8.

Configura ed esegue il test del driver ODBC Microsoft per Microsoft SQL Server

Questi passi descrivono come installare e configurare il driver Microsoft ODBC per Microsoft SQL Server sui nodi cluster VM Oracle Exadata Database Service on Dedicated Infrastructure.

  1. Su tutti i nodi del cluster VM Oracle Exadata Database Service on Dedicated Infrastructure, installare il driver Microsoft ODBC per Microsoft SQL Server e gli strumenti Microsoft SQL eseguendo i comandi seguenti.
    [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. Dopo aver installato il driver Microsoft ODBC per Microsoft SQL Server sui nodi cluster VM Oracle Exadata Database Service on Dedicated Infrastructure, verificare che il driver ODBC Microsoft sia caricato e configurato correttamente nel sistema operativo 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. Su tutti i nodi del cluster VM Oracle Exadata Database Service on Dedicated Infrastructure, verifica che durante l'installazione del driver sia stato creato automaticamente un collegamento soft da /usr/lib64 al driver Microsoft ODBC Driver for Microsoft SQL. Se il collegamento non è stato creato, crearlo utilizzando ln -s. Il collegamento è simile al seguente:
    [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. Su tutti i nodi del cluster VM di Oracle Exadata Database Service on Dedicated Infrastructure crea un file di configurazione ODBC nella directory home utente 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 ~]$
    
    Le variabili nell'esempio sono i seguenti:
    • Database_Name_From_Step_1 è il nome del database di Azure SQL Server, dal passo 1.
    • Fully_Qualified_Server_Name_From_Step_1 è il nome host completamente qualificato per SQL Server, dal passo 1.
  5. Su tutti i nodi del cluster VM Oracle Exadata Database Service on Dedicated Infrastructure, verifica la connettività al database Azure SQL Server utilizzando la utility 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;
    Questo comando deve visualizzare il numero di righe nella tabella selezionata.
    Le variabili nell'esempio sono i seguenti:
    • Database_Name_From_Step_1 è il nome del database di Azure SQL Server, dal passo 1.
    • Nome utente è il nome utente per Azure SQL Server, dal passo 1.
    • User_Password è la password per l'utente di Azure SQL Server, dal passo 1.
    • some_table è un nome di tabella nel database.
  6. In tutti i nodi del cluster VM di Oracle Exadata Database Service on Dedicated Infrastructure, verificare la connettività al database di Azure SQL Server utilizzando gli strumenti SQL di 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 
    Questo comando deve visualizzare il numero di righe nella tabella selezionata.
    Le variabili nell'esempio sono i seguenti:
    • Database_Name_From_Step_1 è il nome del database di Azure SQL Server, dal passo 1.
    • Nome utente è il nome utente per Azure SQL Server, dal passo 1.
    • User_Password è la password per l'utente di Azure SQL Server, dal passo 1.
    • some_table è un nome di tabella nel database.
La connettività tra Oracle Exadata Database Service on Dedicated Infrastructure e Azure SQL Server può ora essere stabilita dal sistema operativo Oracle Linux in esecuzione sui nodi Oracle Exadata Database Service on Dedicated Infrastructure utilizzando Microsoft ODBC Driver for Microsoft SQL Server utilizzando l'interconnessione a latenza rapida OracleDB for Azure tra Azure e OCI.

Configurare i servizi eterogenei Oracle

Dopo la connettività da Oracle Exadata Database Service on Dedicated Infrastructure, il sistema operativo Oracle Linux al database Azure SQL Server può essere stabilito utilizzando il driver Microsoft ODBC per Microsoft SQL Server, configurare i servizi Oracle eterogenei per il database Oracle Exadata Database Service on Dedicated Infrastructure effettuando le operazioni riportate di seguito.
  1. Su tutti i nodi del cluster VM di Oracle Exadata Database Service on Dedicated Infrastructure, per l'utente oracle, creare un file di configurazione per il driver ODBC Microsoft per connettersi a Azure SQL Server, con i seguenti parametri:
    [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 ~]$
    Le variabili nell'esempio sono i seguenti:
    • Database_Name_From_Step_1 è il nome del database di Azure SQL Server, dal passo 1.
    • Fully_Qualified_Server_Name_From_Step_1 è il nome host completamente qualificato per SQL Server in cui è in esecuzione il database Azure SQL Server, dal passo 1.
  2. Su tutti i nodi del cluster VM Oracle Exadata Database Service on Dedicated Infrastructure, crea un file di configurazione per i servizi eterogenei di database Oracle Exadata Database Service on Dedicated Infrastructure. Questo file di configurazione deve essere creato nella home Oracle Database per il database Oracle Exadata Database Service on Dedicated Infrastructure con i parametri riportati di seguito.
    [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
    In questo elenco di parametri tenere presente quanto riportato di seguito.
    • /usr/lib64/libodbc.os è il driver ODBC incluso con Oracle Linux in Oracle Exadata Database Service on Dedicated Infrastructure. Questo driver include funzioni di base quali SQLColAttribute chiamate dal driver ODBC per Microsoft SQL Server.
    • Oracle Heterogeneous Services chiama il driver Microsoft ODBC in base al parametro ODBCINI, che punta al file di configurazione ODBC creato nel passo precedente.
    • Il valore Server_Name fornito nel parametro HS_DB_NAME deve essere in lettere maiuscole.
    • I valori dei parametri HS_NLS_NCHAR e HS_LANGUAGE immessi qui dipendono dai set di caratteri utilizzati per creare i database Azure SQL Server e Oracle Exadata Database Service on Dedicated Infrastructure.
    Le variabili nell'esempio sono i seguenti:
    • Database_Name_From_Step_1 è il nome del database di Azure SQL Server, dal passo 1.
    • Database_Home è il nome della home del database.
    • Server_Name è il nome host del nome del server completamente qualificato, dal passo 1.
  3. Su tutti i nodi del cluster VM Oracle Exadata Database Service on Dedicated Infrastructure, aggiungere le righe seguenti al file tnsnames.ora, affinché il database possa risolvere i servizi Oracle eterogenei.
    [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)
     )
    Le variabili nell'esempio sono i seguenti:
    • exa_dbname è il nome del database Oracle Exadata Database Service on Dedicated Infrastructure.
    • Database_Name_From_Step_1 è il nome del database di Azure SQL Server, dal passo 1.
  4. Su entrambi i nodi del cluster VM Oracle Exadata Database Service on Dedicated Infrastructure crea un listener locale sulla porta 1522 per i servizi Oracle eterogenei creando un file listener.ora nella home del database di 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)
     )
     )
    Le variabili nell'esempio sono i seguenti:
    • exa_dbname è il nome del database Oracle Exadata Database Service on Dedicated Infrastructure.
    • Database_Name_From_Step_1 è il nome del database di Azure SQL Server, dal passo 1.
    • Database_Home è il nome home del database.
  5. In un nodo del cluster VM di Oracle Exadata Database Service on Dedicated Infrastructure, aggiungere il nuovo listener locale a Oracle Cluster Ready Services (CRS) come utente root.
    Ad esempio:
    [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
    Le variabili nell'esempio sono i seguenti:
    • Database_Name_From_Step_1 è il nome del database di Azure SQL Server, dal passo 1.
    • Database_Home è il nome home del database.
    • exa_dbname è il nome del database Oracle Exadata Database Service on Dedicated Infrastructure.
  6. In un nodo del cluster VM di Oracle Exadata Database Service on Dedicated Infrastructure, avviare il listener come 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]$
    Nell'esempio, Database_Name_From_Step_1 è il nome del database di Azure SQL Server, dal passo 1.
  7. In un nodo del cluster VM Oracle Exadata Database Service on Dedicated Infrastructure, verifica come utente oracle che il listener locale stia effettivamente ascoltando i servizi Oracle eterogenei.
    [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 ~]$
    Le variabili nell'esempio sono i seguenti:
    • exa_dbname è il nome del database Oracle Exadata Database Service on Dedicated Infrastructure.
    • Database_Name_From_Step_1 è il nome del database di Azure SQL Server, dal passo 1.
  8. Da uno dei nodi cluster VM Oracle Exadata Database Service on Dedicated Infrastructure, verifica la connettività a Oracle Heterogeneous Services utilizzando tnsping.
    Ad esempio:
    [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 ~]$
    Le variabili nell'esempio sono i seguenti:
    • Database_Name_From_Step_1 è il nome del database di Azure SQL Server, dal passo 1.
    • Database_Home è il nome home del database.
    • exa_dbname è il nome del database Oracle Exadata Database Service on Dedicated Infrastructure.