Carga de datos mediante Oracle Heterogenous Services

OracleDB para Azure permite a las aplicaciones de Azure cargar y consultar datos de bases de datos de OCI. Esta arquitectura describe cómo un Oracle Exadata Database Service on Dedicated Infrastructure puede aprovechar la infraestructura proporcionada por OracleDB for Azure para cargar datos desde un servidor SQL de Azure mediante un enlace de base de datos mediante los servicios heterogéneos de Oracle proporcionados por Oracle Exadata Database Service on Dedicated Infrastructure.

Arquitectura

Esta arquitectura utiliza Oracle Exadata Database Service on Dedicated Infrastructure para cargar y consultar datos de un servidor SQL de Azure con un enlace de base de datos mediante Oracle Heterogenous Services que se ejecuta en Oracle Exadata Database Service on Dedicated Infrastructure.

En el siguiente diagrama se ilustra esta arquitectura.



exadata-db-azure-odsa-heterogenous.zip

Antes de empezar

Antes de empezar, compruebe las versiones de los principales componentes de software utilizados en esta configuración, descargue el paquete de software necesario y revise la documentación del producto para obtener más información.

Revisar requisitos de software

Estas instrucciones se prueban en las siguientes versiones de software y hardware.

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

Descargue los siguientes paquetes de software:

Acerca de los roles y servicios necesarios

Esta solución requiere los siguientes servicios:

  • Oracle Exadata Database Service on Dedicated Infrastructure
  • Máquinas virtuales de Oracle Exadata Database Service on Dedicated Infrastructure

Estos son los roles necesarios para cada servicio.

Nombre de servicio: rol Necesario para...
Oracle Exadata Database Service on Dedicated Infrastructure: sys con Configure el enlace de la base de datos.
Máquinas virtuales de Oracle Exadata Database Service on Dedicated Infrastructure: opc/root, oracle, grid Instale los controladores de Microsoft ODBC, instale las herramientas de ODBC, configure el listener y configure los servicios heterogéneos.

Consulte Descubra cómo obtener los servicios de Oracle Cloud para las soluciones de Oracle para obtener los servicios en la nube que necesita.

Consideraciones para Oracle Heterogenous Services

Al cargar datos mediante los servicios heterogéneos de Oracle, revise estas consideraciones.

  • La base de datos Oracle Exadata Database Service on Dedicated Infrastructure necesita la resolución de nombre de host a dirección IP para el punto final de Azure SQL Server. Puede editar el archivo /etc/hosts en los nodos de cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure o configurar una zona de DNS privada en la red virtual en la nube (VCN) de OCI en la que está configurada la base de datos de Oracle Exadata Database Service on Dedicated Infrastructure.
  • En las bases de datos de Oracle Exadata Database Service on Dedicated Infrastructure, el parámetro global_names se define por defecto en TRUE. Por lo tanto, el nombre de base de datos totalmente cualificado se debe utilizar al crear el enlace de base de datos a Azure SQL Server.
  • Los servicios heterogéneos de Oracle se incluyen por defecto con las bases de datos de Oracle Exadata Database Service on Dedicated Infrastructure. Sin embargo, se necesita un controlador ODBC de Microsoft adicional para conectarse a una base de datos de terceros. Para la base de datos Azure SQL Server, se recomienda el controlador Microsoft ODBC para Microsoft SQL Server.

Ventajas de Oracle Heterogenous Services

  • Oracle desarrolla y soporta los servicios heterogéneos de Oracle y se incluye con imágenes de software de base de datos de Oracle Exadata Database Service on Dedicated Infrastructure. No se necesitan licencias adicionales de Oracle.
  • La comunicación entre Oracle Exadata Database Service on Dedicated Infrastructure y Azure SQL Server está totalmente cifrada de extremo a extremo, no se requiere ninguna configuración adicional (cifrado de red aplicado por Azure SQL Server y configuraciones por defecto de Oracle Exadata Database Service on Dedicated Infrastructure).

Desventajas de los servicios heterogéneos de Oracle

  • Se necesita instalar software de terceros adicional en Oracle Exadata Database Service on Dedicated Infrastructure (controlador Microsoft ODBC para Microsoft SQL Server). Es posible que se necesiten pasos adicionales al actualizar y mantener el entorno de Oracle Exadata Database Service on Dedicated Infrastructure.
  • Oracle Heterogenous Services se ejecuta en la plataforma Oracle Exadata Database Service on Dedicated Infrastructure, que puede hacer que la solución sea un poco más cara, ya que la solución utilizará las OCPU de Oracle Exadata Database Service on Dedicated Infrastructure más especializadas y de mayor precio para cargar y consultar datos desde Azure SQL Server.
  • La solución utiliza el controlador ODBC de Microsoft para Microsoft SQL Server, que requiere la configuración manual para la conversión y asignación del tipo de dato.

Configuración de Oracle Database Gateway con servicios heterogéneos de Oracle

  1. Conéctese a la consola de Azure para obtener la información de la base de datos de Azure SQL Server desde la que la base de datos de Oracle Exadata Database Service on Dedicated Infrastructure cargará y consultará los datos. Esta información es necesaria para indicar al controlador ODBC de Microsoft cómo conectarse a la base de datos de Azure SQL Server:
    Obtenga los siguientes detalles:
    • Nombre de base de datos: nombre de la base de datos de Azure SQL Server.
    • Nombre de servidor totalmente cualificado: nombre de host totalmente cualificado para SQL Server en el que se ejecuta la base de datos de Azure SQL Server, normalmente con el formato servername.database.windows.net.
    • Punto final privado de Azure SQL Server: nombre y dirección IP del punto final privado de Azure SQL Server en la vnet de Azure que se conecta a Azure SQL Server. Si aún no existe ningún punto final privado, cree uno para Azure SQL Server y anote el nombre y la dirección IP.
    • Nombre de usuario de Azure SQL Server: nombre de un usuario de Azure SQL Server existente que puede conectarse a la base de datos y el esquema de Azure SQL Server, normalmente sqladmin.
    • Contraseña de usuario de Azure SQL Server: contraseña para que el usuario de Azure SQL Server se conecte a la base de datos y el esquema de Azure SQL Server.
  2. En el menú principal de OCI, seleccione Gestión de redes/DNS para crear una zona de DNS privada. En la nueva zona de DNS privada, agregue un registro para el nombre de servidor totalmente cualificado del paso 1 para resolverlo en la dirección IP de punto final privado de Azure SQL Server (del paso 1).
  3. En el menú principal de OCI, seleccione Gestión de redes/DNS para crear una vista privada de DNS. Agregue la zona de DNS privada creada en el paso anterior a esta vista privada de DNS recién creada y active los cambios.
  4. En el menú principal de OCI, seleccione Red/Red de cliente virtual (VCN). Seleccione la VCN creada al aprovisionar el servicio Oracle Database Gateway Oracle Exadata Database Service on Dedicated Infrastructure (cambie el compartimento si es necesario). Haga clic en el enlace de resolución de DNS y, a continuación, agregue la vista privada de DNS creada desde el paso anterior al solucionador de DNS. Esto permitirá la resolución de nombres y direcciones IP de Oracle Exadata Database Service on Dedicated Infrastructure a la máquina virtual de Azure que ejecuta Oracle Database Gateway.
  5. Conéctese a uno de los nodos de cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure para utilizar nslookup para verificar que el nombre de host para la resolución de direcciones IP funciona para la máquina virtual de Azure que ejecutará Oracle Database Gateway.
    Por ejemplo:
    [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 ~]$
    Las variables del ejemplo tienen los siguientes valores:
    • servername es el nombre del servidor completo del Azure SQL Server del paso 1.
    • IP_address_of_Azure_SQL_Server_private_endpoint es la dirección IP del punto final privado de Azure SQL Server del paso 1.
  6. Cargue los paquetes de Microsoft (controlador ODBC de Microsoft y herramientas SQL) descargados anteriormente en los nodos de cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, instale los paquetes y configure el controlador ODBC MicrosoftS para Microsoft SQL Server. Consulte Configure and Test Microsoft ODBC Driver for Microsoft SQL Server para obtener instrucciones.
  7. Configure Oracle Heterogenous Services para conectar la base de datos Oracle Exadata Database Service on Dedicated Infrastructure a Azure SQL Server mediante el controlador MS ODBC.
  8. En Oracle Exadata Database Service on Dedicated Infrastructure base de datos conectable (PDB) (no en la CDB) cree un enlace de base de datos a la base de datos Azure SQL Server. El parámetro global_names está definido en TRUE en las bases de datos de Oracle Exadata Database Service on Dedicated Infrastructure por defecto, por lo que se debe utilizar el nombre completo de la base de datos para crear el enlace de base de datos. Una vez creado el enlace de base de datos, puede consultar y cargar datos de la base de datos de Azure SQL Server en Oracle Exadata Database Service on Dedicated Infrastructure base de datos conectable (PDB) mediante este enlace.
    [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.
    Tenga en cuenta que el nombre de usuario y la contraseña se incluyen entre comillas dobles (" "), mientras que el nombre de la base de datos de Azure SQL Server se incluye entre comillas simples (' ').
    Las variables del ejemplo tienen los siguientes valores:
    • exadb_name es el nombre de la base de datos Oracle Exadata Database Service on Dedicated Infrastructure.
    • PDBName es el nombre de la base de datos de conexión.
    • Fully_Qualified_Server_Name es el nombre de host completo para el servidor SQL donde se ejecuta la base de datos de Azure SQL Server, desde el paso 1.
    • Azure_SQL_Server_Username es el nombre del nombre de usuario existente de Azure SQL Server, en el paso 1.
    • Azure_SQL_User_Password es la contraseña para que el usuario de Azure SQL Server se conecte a la base de datos, desde el paso 1.
    • Database_Name es el nombre de la base de datos de Azure SQL Server, del paso 1.
  9. Pruebe el enlace recién creado ejecutando una consulta, por ejemplo:
    SQL> select count(*) from 
    some_table@DatabaseLink_Name;
    Las variables del ejemplo tienen los siguientes valores:
    • some_table es el nombre de una tabla de la base de datos que se va a consultar.
    • DatabaseLink_Name es el nombre del enlace de base de datos del paso 8.

Configurar y probar el controlador ODBC de Microsoft para Microsoft SQL Server

En estos pasos se describe cómo instalar y configurar el controlador ODBC de Microsoft para Microsoft SQL Server en los nodos de cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure.

  1. En todos los nodos del cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, instale el controlador ODBC de Microsoft para Microsoft SQL Server y las herramientas de Microsoft SQL ejecutando los siguientes comandos.
    [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. Después de instalar el controlador ODBC de Microsoft para Microsoft SQL Server en los nodos de cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, verifique que el controlador ODBC de Microsoft se haya cargado y configurado correctamente en el 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. En todos los nodos del cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, verifique que se haya creado automáticamente un enlace lógico de /usr/lib64 al controlador ODBC de Microsoft para Microsoft SQL durante la instalación del controlador. Si el enlace no se ha creado, créelo mediante ln -s. El enlace se parece a lo siguiente:
    [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. En todos los nodos del cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, cree un archivo de configuración ODBC en el directorio raíz de usuario 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 ~]$
    
    Las variables del ejemplo tienen los siguientes valores:
    • Database_Name_From_Step_1 es el nombre de la base de datos de Azure SQL Server, en el paso 1.
    • Fully_Qualified_Server_Name_From_Step_1 es el nombre de host completo para SQL Server, en el paso 1.
  5. En todos los nodos del cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, verifique la conectividad a la base de datos de Azure SQL Server mediante la utilidad de 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;
    Este comando debe mostrar el número de filas en la tabla seleccionada.
    Las variables del ejemplo tienen los siguientes valores:
    • Database_Name_From_Step_1 es el nombre de la base de datos de Azure SQL Server, en el paso 1.
    • Nombre de usuario es el nombre de usuario de Azure SQL Server, en el paso 1.
    • User_Password es la contraseña del usuario de Azure SQL Server, en el paso 1.
    • some_table es un nombre de tabla de la base de datos.
  6. En todos los nodos del cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, verifique la conectividad a la base de datos de Azure SQL Server mediante las herramientas de Microsoft SQL.
    [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 
    Este comando debe mostrar el número de filas en la tabla seleccionada.
    Las variables del ejemplo tienen los siguientes valores:
    • Database_Name_From_Step_1 es el nombre de la base de datos de Azure SQL Server, en el paso 1.
    • Nombre de usuario es el nombre de usuario de Azure SQL Server, en el paso 1.
    • User_Password es la contraseña del usuario de Azure SQL Server, en el paso 1.
    • some_table es un nombre de tabla de la base de datos.
La conectividad entre Oracle Exadata Database Service on Dedicated Infrastructure y Azure SQL Server ahora se puede establecer desde el sistema operativo Oracle Linux que se ejecuta en los nodos de Oracle Exadata Database Service on Dedicated Infrastructure mediante el controlador ODBC de Microsoft para Microsoft SQL Server mediante la interconexión de latencia rápida y baja de OracleDB for Azure entre Azure y OCI.

Configuración de Servicios Heterogéneos de Oracle

Después de la conectividad del sistema operativo Oracle Linux Oracle Exadata Database Service on Dedicated Infrastructure a la base de datos Azure SQL Server se puede establecer mediante el controlador ODBC de Microsoft para Microsoft SQL Server, configure los servicios heterogéneos de Oracle para la base de datos Oracle Exadata Database Service on Dedicated Infrastructure siguiendo estos pasos.
  1. En todos los nodos del cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, para el usuario oracle, cree un archivo de configuración para que el controlador ODBC de Microsoft se conecte a Azure SQL Server, con los siguientes parámetros:
    [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 ~]$
    Las variables del ejemplo tienen los siguientes valores:
    • Database_Name_From_Step_1 es el nombre de la base de datos de Azure SQL Server, en el paso 1.
    • Fully_Qualified_Server_Name_From_Step_1 es el nombre de host completo para SQL Server en el que se ejecuta la base de datos de Azure SQL Server, en el paso 1.
  2. En todos los nodos del cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, cree un archivo de configuración para los servicios heterogéneos de la base de datos de Oracle Exadata Database Service on Dedicated Infrastructure. Este archivo de configuración se debe crear en el directorio raíz de Oracle Database para la base de datos Oracle Exadata Database Service on Dedicated Infrastructure con los siguientes parámetros.
    [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
    En esta lista de parámetros, tenga en cuenta lo siguiente:
    • /usr/lib64/libodbc.os es el controlador ODBC incluido con Oracle Linux en Oracle Exadata Database Service on Dedicated Infrastructure. Este controlador incluye funciones básicas como SQLColAttribute que llama el controlador ODBC para Microsoft SQL Server.
    • Los servicios heterogéneos de Oracle llaman al controlador ODBC de Microsoft según el parámetro ODBCINI, que apunta al archivo de configuración ODBC creado en el paso anterior.
    • El valor de Server_Name proporcionado en el parámetro HS_DB_NAME debe estar en mayúsculas.
    • Los valores de parámetros HS_NLS_NCHAR y HS_LANGUAGE introducidos aquí dependen de los juegos de caracteres utilizados para crear las bases de datos Azure SQL Server y Oracle Exadata Database Service on Dedicated Infrastructure.
    Las variables del ejemplo tienen los siguientes valores:
    • Database_Name_From_Step_1 es el nombre de la base de datos de Azure SQL Server, en el paso 1.
    • Database_Home es el nombre del directorio raíz de base de datos.
    • Server_Name es el nombre de host del nombre de servidor completo, en el paso 1.
  3. En todos los nodos del cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, agregue las siguientes líneas al archivo tnsnames.ora para que la base de datos pueda resolver en los servicios heterogéneos de 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)
     )
    Las variables del ejemplo tienen los siguientes valores:
    • exa_dbname es el nombre de la base de datos Oracle Exadata Database Service on Dedicated Infrastructure.
    • Database_Name_From_Step_1 es el nombre de la base de datos de Azure SQL Server, en el paso 1.
  4. En ambos nodos del cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, cree un listener local en el puerto 1522 para los servicios heterogéneos de Oracle mediante la creación de un archivo listener.ora en el directorio raíz de base de datos de la base de datos de 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)
     )
     )
    Las variables del ejemplo tienen los siguientes valores:
    • exa_dbname es el nombre de la base de datos Oracle Exadata Database Service on Dedicated Infrastructure.
    • Database_Name_From_Step_1 es el nombre de la base de datos de Azure SQL Server, en el paso 1.
    • Database_Home es el nombre del directorio raíz de la base de datos.
  5. En un nodo del cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, agregue el nuevo listener local a Oracle Cluster Ready Services (CRS) como usuario root.
    Por ejemplo:
    [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
    Las variables del ejemplo tienen los siguientes valores:
    • Database_Name_From_Step_1 es el nombre de la base de datos de Azure SQL Server, en el paso 1.
    • Database_Home es el nombre del directorio raíz de la base de datos.
    • exa_dbname es el nombre de la base de datos Oracle Exadata Database Service on Dedicated Infrastructure.
  6. En un nodo del cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, inicie el listener como 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]$
    En el ejemplo, Database_Name_From_Step_1 es el nombre de la base de datos de Azure SQL Server, en el paso 1.
  7. En un nodo del cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, verifique como usuario oracle que el listener local realmente recibe los servicios heterogéneos de 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 ~]$
    Las variables del ejemplo tienen los siguientes valores:
    • exa_dbname es el nombre de la base de datos Oracle Exadata Database Service on Dedicated Infrastructure.
    • Database_Name_From_Step_1 es el nombre de la base de datos de Azure SQL Server, en el paso 1.
  8. Desde uno de los nodos de cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure, pruebe la conectividad a los servicios heterogéneos de Oracle mediante tnsping.
    Por ejemplo:
    [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 ~]$
    Las variables del ejemplo tienen los siguientes valores:
    • Database_Name_From_Step_1 es el nombre de la base de datos de Azure SQL Server, en el paso 1.
    • Database_Home es el nombre del directorio raíz de la base de datos.
    • exa_dbname es el nombre de la base de datos Oracle Exadata Database Service on Dedicated Infrastructure.