使用 Oracle 异构服务加载数据

使用 OracleDB for AzureAzure 应用程序可以从 OCI 数据库加载和查询数据。此体系结构介绍了 Oracle Exadata Database Service on Dedicated Infrastructure 如何利用 OracleDB for Azure 提供的基础结构,通过 Oracle Exadata Database Service on Dedicated Infrastructure 提供的 Oracle Heterogenous Services 通过数据库链接从 Azure SQL Server 加载数据。

体系结构

此体系结构使用 Oracle Exadata Database Service on Dedicated Infrastructure 从具有数据库链接的 Azure SQL Server 加载和查询数据,该服务器使用在 Oracle Exadata Database Service on Dedicated Infrastructure 上运行的 Oracle 异构服务。

下图说明了此体系结构。



exadata-db-azure-odsa-heterogenous.zip

开始之前

开始之前,请检查此设置中使用的主要软件组件的版本,下载所需的软件包,并查看产品文档以供日后参考。

查看软件要求

这些说明在以下软件和硬件版本上进行了测试。

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

下载以下软件包:

关于必需的服务和角色

此解决方案需要以下服务:

  • Oracle Exadata Database Service on Dedicated Infrastructure
  • Oracle Exadata Database Service on Dedicated Infrastructure 虚拟机

这些是每个服务所需的角色。

服务名:职责 要求 ...
Oracle Exadata Database Service on Dedicated Infrastructure :sys con 配置数据库链接。
专用基础设施上的 Oracle Exadata Database Service on Dedicated Infrastructure 虚拟机:opc/root, oracle, grid 安装 Microsoft ODBC 驱动程序、安装 ODBC 工具、配置监听程序和配置异构服务。

要获取所需的云服务,请参阅 了解如何获取 Oracle 解决方案的 Oracle Cloud 服务

Oracle 异构服务的注意事项

使用 Oracle 异构服务加载数据时,请查看以下注意事项。

  • Oracle Exadata Database Service on Dedicated Infrastructure 数据库要求提供 Azure SQL Server 端点的主机名到 IP 地址解析。您可以在 Oracle Exadata Database Service on Dedicated Infrastructure VM 集群节点上编辑 /etc/hosts 文件,或在配置了 Oracle Exadata Database Service on Dedicated Infrastructure 数据库的 OCI 虚拟云网络 (VCN) 上配置专用 DNS 区域。
  • Oracle Exadata Database Service on Dedicated Infrastructure 数据库中,默认情况下参数 global_names 设置为 TRUE。因此,创建到 Azure SQL Server 的数据库链接时必须使用全限定数据库名称
  • 默认情况下,Oracle 异构服务随 Oracle Exadata Database Service on Dedicated Infrastructure 数据库提供。但是,连接到第三方数据库需要额外的 Microsoft ODBC 驱动程序。对于 Azure SQL Server 数据库,建议使用适用于 Microsoft SQL Server 的 Microsoft ODBC 驱动程序。

Oracle 异构服务的优势

  • Oracle 异构服务由 Oracle 开发和支持,并包含在 Oracle Exadata Database Service on Dedicated Infrastructure 数据库软件映像中。不需要额外的 Oracle 许可。
  • Oracle Exadata Database Service on Dedicated Infrastructure 与 Azure SQL Server 之间的通信完全加密端到端,无需其他配置(Azure SQL Server 和 Oracle Exadata Database Service on Dedicated Infrastructure 默认配置强制执行网络加密)。

Oracle 异构服务的缺点

  • 需要在 Oracle Exadata Database Service on Dedicated Infrastructure (适用于 Microsoft SQL Server 的 Microsoft ODBC 驱动程序)上安装其他第三方软件。更新和维护 Oracle Exadata Database Service on Dedicated Infrastructure 环境时可能需要其他步骤。
  • Oracle 异构服务在 Oracle Exadata Database Service on Dedicated Infrastructure 平台上运行,该平台可让解决方案更昂贵,因为该解决方案将使用更专业、价格更高的 Oracle Exadata Database Service on Dedicated Infrastructure OCPU 从 Azure SQL Server 加载和查询数据。
  • 解决方案使用适用于 Microsoft SQL Server 的 Microsoft ODBC 驱动程序,这需要手动配置数据类型转换和映射。

使用 Oracle 异构服务配置 Oracle Database Gateway

  1. 登录 Azure 控制台以获取 Azure SQL Server 数据库的信息,Oracle Exadata Database Service on Dedicated Infrastructure 数据库将从该数据库加载和查询数据。要告知 Microsoft ODBC 驱动程序如何连接到 Azure SQL Server 数据库,需要以下信息:
    获取以下详细信息:
    • 数据库名称Azure SQL Server 数据库的名称。
    • 全限定服务器名称:运行 Azure SQL Server 数据库的 SQL Server 的全限定主机名,通常采用 servername.database.windows.net 格式。
    • Azure SQL Server 专用端点:连接到 Azure SQL Server 的 Azure vnet 中的 Azure SQL Server 专用端点的名称和 IP 地址。如果尚不存在专用端点,请为 Azure SQL Server 创建一个端点,并记下名称和 IP 地址。
    • Azure SQL Server 用户名:允许连接到 Azure SQL Server 数据库和方案的现有 Azure SQL Server 用户的名称,通常为 sqladmin
    • Azure SQL Server 用户密码Azure SQL Server 用户连接到 Azure SQL Server 数据库和方案的密码。
  2. 从 OCI 主菜单中选择网络/DNS 管理以创建专用 DNS 区域。在新的专用 DNS 区域中,从步骤 1 中为“全限定服务器名称”添加一条记录,以解析为 Azure SQL Server 专用端点 IP 地址(从步骤 1 开始)。
  3. 从 OCI 主菜单中,选择网络/DNS 管理以创建 DNS 专用视图。将在上一步中创建的专用 DNS 区域添加到此新创建的 DNS 专用视图并激活更改。
  4. 从 OCI 主菜单中,选择网络/虚拟客户端网络 (VCN) 。选择预配 Oracle Database Gateway Oracle Exadata Database Service on Dedicated Infrastructure 服务时创建的 VCN(如果需要,请更改区间)。单击 DNS 解析程序链接,然后将从上一步创建的 DNS 专用视图添加到 DNS 解析程序。这将允许从 Oracle Exadata Database Service on Dedicated Infrastructure 到运行 Oracle Database Gateway 的 Azure VM 的名称和 IP 地址解析。
  5. 登录到某个 Oracle Exadata Database Service on Dedicated Infrastructure VM 集群节点,以使用 nslookup 验证主机名到 IP 地址解析是否适用于将运行 Oracle Database Gateway 的 Azure 虚拟机。
    例如:
    [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 ~]$
    示例中的变量具有以下值:
    • servername 是步骤 1 中 Azure SQL Server 的全限定服务器名称的名称。
    • IP_address_of_Azure_SQL_Server_private_endpoint 是步骤 1 中 Azure SQL Server 专用端点的 IP 地址。
  6. 将先前下载的 Microsoft 软件包(Microsoft ODBC 驱动程序和 SQL 工具)上载到 Oracle Exadata Database Service on Dedicated Infrastructure VM 集群节点,安装软件包并配置适用于 Microsoft SQL Server 的 MicrosoftS ODBC 驱动程序。有关说明,请参阅为 Microsoft SQL Server 配置和测试 Microsoft ODBC 驱动程序
  7. 配置 Oracle 异构服务:使用 MS ODBC 驱动程序将 Oracle Exadata Database Service on Dedicated Infrastructure 数据库连接到 Azure SQL Server
  8. Oracle Exadata Database Service on Dedicated Infrastructure 可插入数据库 (pluggable database,PDB) (不在 CDB 中)中,创建指向 Azure SQL Server 数据库的数据库链接。默认情况下,参数 global_namesOracle Exadata Database Service on Dedicated Infrastructure 数据库中设置为 TRUE,因此必须使用全限定数据库名称来创建数据库链接。创建数据库链接后,可以使用此链接查询数据并将其从 Azure SQL Server 数据库加载到 Oracle Exadata Database Service on Dedicated Infrastructure 可插入数据库 (pluggable database,PDB)
    [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.
    请注意,用户名和密码用双引号 (" ") 引起来,而 Azure SQL Server 数据库名称用单引号(‘ ‘)引起来。
    示例中的变量具有以下值:
    • exadb_nameOracle Exadata Database Service on Dedicated Infrastructure 数据库的名称。
    • PDBName 是可插入数据库的名称。
    • Fully_Qualified_Server_Name 是从步骤 1 开始运行 Azure SQL Server 数据库的 SQL 服务器的全限定主机名。
    • Azure_SQL_Server_Username 是步骤 1 中现有 Azure SQL Server 用户名的名称。
    • Azure_SQL_User_PasswordAzure SQL Server 用户从步骤 1 连接到数据库的密码。
    • Database_Name 是步骤 1 中 Azure SQL Server 数据库的名称。
  9. 通过运行查询测试新创建的链接,例如:
    SQL> select count(*) from 
    some_table@DatabaseLink_Name;
    示例中的变量具有以下值:
    • some_table 是要查询的数据库中的表的名称。
    • DatabaseLink_Name 是步骤 8 中的数据库链接名称。

为 Microsoft SQL Server 配置和测试 Microsoft ODBC 驱动程序

以下步骤介绍了如何在 Oracle Exadata Database Service on Dedicated Infrastructure VM 集群节点上安装和配置适用于 Microsoft SQL Server 的 Microsoft ODBC 驱动程序。

  1. Oracle Exadata Database Service on Dedicated Infrastructure VM 集群的所有节点上,通过运行以下命令安装适用于 Microsoft SQL Server 的 Microsoft ODBC 驱动程序和 Microsoft SQL Tools。
    [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. Oracle Exadata Database Service on Dedicated Infrastructure VM 集群节点上安装适用于 Microsoft SQL Server 的 Microsoft ODBC 驱动程序后,验证是否在 Oracle Linux 操作系统中正确加载和配置了 Microsoft ODBC 驱动程序。
    [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. Oracle Exadata Database Service on Dedicated Infrastructure VM 集群的所有节点上,验证在驱动程序安装期间是否自动创建了从 /usr/lib64 到适用于 Microsoft SQL 的 Microsoft ODBC 驱动程序的软链接。如果未创建链接,请使用 ln -s 创建链接。该链接类似于以下内容:
    [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. Oracle Exadata Database Service on Dedicated Infrastructure 的所有节点上,VM 集群在 oracle 用户主目录中创建 ODBC 配置文件:
    [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 ~]$
    
    示例中的变量具有以下值:
    • Database_Name_From_Step_1 是来自步骤 1Azure SQL Server 数据库的名称。
    • Fully_Qualified_Server_Name_From_Step_1 是 SQL Server 的全限定主机名,来自第 1 步
  5. Oracle Exadata Database Service on Dedicated Infrastructure VM 集群的所有节点上,使用 Oracle Linux 实用程序 isql 验证与 Azure SQL Server 数据库的连接。
    [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;
    此命令应显示所选表中的行数。
    示例中的变量具有以下值:
    • Database_Name_From_Step_1 是来自步骤 1Azure SQL Server 数据库的名称。
    • 用户名是从步骤 1Azure SQL Server 的用户名。
    • User_Password 是来自步骤 1Azure SQL Server 用户的密码。
    • some_table 是数据库中的表名。
  6. Oracle Exadata Database Service on Dedicated Infrastructure VM 集群的所有节点上,使用 Microsoft SQL Tools 验证与 Azure SQL Server 数据库的连接。
    [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 
    此命令应显示所选表中的行数。
    示例中的变量具有以下值:
    • Database_Name_From_Step_1 是来自步骤 1Azure SQL Server 数据库的名称。
    • 用户名是从步骤 1Azure SQL Server 的用户名。
    • User_Password 是来自步骤 1Azure SQL Server 用户的密码。
    • some_table 是数据库中的表名。
Oracle Exadata Database Service on Dedicated InfrastructureAzure SQL Server 之间的连接现在可以从在 Oracle Exadata Database Service on Dedicated Infrastructure 上运行的 Oracle Linux OS 使用 Microsoft ODBC 驱动程序在 Azure 与 OCI 之间使用 OracleDB for Azure 快速低延迟互连建立。

配置 Oracle 异构服务

Oracle Exadata Database Service on Dedicated Infrastructure Oracle Linux 操作系统连接到 Azure SQL Server 数据库后,可以使用适用于 Microsoft SQL Server 的 Microsoft ODBC 驱动程序为 Oracle Exadata Database Service on Dedicated Infrastructure 数据库配置 Oracle 异构服务,具体步骤如下。
  1. Oracle Exadata Database Service on Dedicated Infrastructure VM 集群的所有节点上,为用户 oracle 创建一个配置文件,以便 Microsoft ODBC 驱动程序连接到 Azure SQL Server ,并使用以下参数:
    [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 ~]$
    示例中的变量具有以下值:
    • Database_Name_From_Step_1 是来自步骤 1Azure SQL Server 数据库的名称。
    • Fully_Qualified_Server_Name_From_Step_1 是从步骤 1 运行 Azure SQL Server 数据库的 SQL Server 的全限定主机名。
  2. Oracle Exadata Database Service on Dedicated Infrastructure VM Cluster 的所有节点上,为 Oracle Exadata Database Service on Dedicated Infrastructure 数据库异构服务创建配置文件。必须使用以下参数在 Oracle Database 主目录中为 Oracle Exadata Database Service on Dedicated Infrastructure 数据库创建此配置文件。
    [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
    在此参数列表中,请注意以下事项:
    • /usr/lib64/libodbc.osOracle Exadata Database Service on Dedicated Infrastructure 中 Oracle Linux 附带的 ODBC 驱动程序。此驱动程序包括 Microsoft SQL Server 的 ODBC 驱动程序调用的基本函数,例如 SQLColAttribute
    • Oracle 异构服务根据 ODBCINI 参数调用 Microsoft ODBC 驱动程序,该参数指向上一步中创建的 ODBC 配置文件。
    • 参数 HS_DB_NAME 中提供的 Server_Name 必须使用大写字母。
    • 此处输入的 HS_NLS_NCHARHS_LANGUAGE 参数值取决于用于创建 Azure SQL ServerOracle Exadata Database Service on Dedicated Infrastructure 数据库的字符集。
    示例中的变量具有以下值:
    • Database_Name_From_Step_1 是来自步骤 1Azure SQL Server 数据库的名称。
    • Database_Home 是数据库主目录名称。
    • Server_Name步骤 1 中全限定服务器名称的主机名。
  3. Oracle Exadata Database Service on Dedicated Infrastructure VM 集群的所有节点上,将以下行添加到 tnsnames.ora 文件中,以便数据库能够解析为 Oracle Heterogenous Services。
    [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)
     )
    示例中的变量具有以下值:
    • exa_dbnameOracle Exadata Database Service on Dedicated Infrastructure 数据库的名称。
    • Database_Name_From_Step_1 是来自步骤 1Azure SQL Server 数据库的名称。
  4. Oracle Exadata Database Service on Dedicated Infrastructure 的两个节点上,VM 集群通过在 Oracle Exadata Database Service on Dedicated Infrastructure 数据库的数据库主目录上创建 listener.ora 文件,在 Oracle Heterogenous Services 的端口 1522 上创建本地监听程序。
    [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)
     )
     )
    示例中的变量具有以下值:
    • exa_dbnameOracle Exadata Database Service on Dedicated Infrastructure 数据库的名称。
    • Database_Name_From_Step_1 是来自步骤 1Azure SQL Server 数据库的名称。
    • Database_Home 是数据库主目录名称。
  5. Oracle Exadata Database Service on Dedicated Infrastructure VM 集群的一个节点上,以 root 用户身份将新的本地监听程序添加到 Oracle Cluster Ready Services (CRS)。
    例如:
    [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
    示例中的变量具有以下值:
    • Database_Name_From_Step_1 是来自步骤 1Azure SQL Server 数据库的名称。
    • Database_Home 是数据库主目录名称。
    • exa_dbnameOracle Exadata Database Service on Dedicated Infrastructure 数据库的名称。
  6. Oracle Exadata Database Service on Dedicated Infrastructure VM 集群的一个节点上,将监听程序启动为 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]$
    在本示例中,Database_Name_From_Step_1 是来自步骤 1Azure SQL Server 数据库的名称。
  7. Oracle Exadata Database Service on Dedicated Infrastructure VM 集群的一个节点上,以用户 oracle 身份验证本地监听程序是否确实正在监听 Oracle Heterogenous Services。
    [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 ~]$
    示例中的变量具有以下值:
    • exa_dbnameOracle Exadata Database Service on Dedicated Infrastructure 数据库的名称。
    • Database_Name_From_Step_1 是来自步骤 1Azure SQL Server 数据库的名称。
  8. 从其中一个 Oracle Exadata Database Service on Dedicated Infrastructure VM 集群节点中,使用 tnsping 测试与 Oracle 异构服务的连接。
    例如:
    [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 ~]$
    示例中的变量具有以下值:
    • Database_Name_From_Step_1 是来自步骤 1Azure SQL Server 数据库的名称。
    • Database_Home 是数据库主目录名称。
    • exa_dbnameOracle Exadata Database Service on Dedicated Infrastructure 数据库的名称。