使用 Oracle 異質服務載入資料

OracleDB for Azure 可讓 Azure 應用程式從 OCI 資料庫載入和查詢資料。此架構描述 Oracle Exadata Database Service on Dedicated Infrastructure 如何運用 OracleDB for Azure 所提供的基礎架構,透過 Oracle Exadata Database Service on Dedicated Infrastructure 提供的 Oracle 異質服務,使用資料庫連結從 Azure SQL Server 載入資料。

架構

此架構使用 Oracle Exadata Database Service on Dedicated Infrastructure ,透過在 Oracle Exadata Database Service on Dedicated Infrastructure 上執行的 Oracle 異質服務,從具有資料庫連結的 Azure SQL Server 載入和查詢資料。

下圖說明此架構。



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 Virtual Machines

這些是每項服務所需的角色。

服務名稱:角色 需要 ...
Oracle Exadata Database Service on Dedicated Infrastructure: sys con 設定資料庫連結。
Oracle Exadata Database Service on Dedicated Infrastructure Virtual Machines: opc/root, oracle, grid 安裝 Microsoft ODBC 驅動程式、安裝 ODBC 工具、設定監聽器,以及設定異質服務。

請參閱瞭解如何取得 Oracle 解決方案適用的 Oracle Cloud 服務,以取得您需要的雲端服務。

Oracle 異質服務考量

使用 Oracle 異質服務載入資料時,請複查這些考量。

  • Hostname to IP address resolution for the Azure SQL Server Endpoint is required by the Oracle Exadata Database Service on Dedicated Infrastructure database.您可以在 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 Exadata Database Service on Dedicated Infrastructure 資料庫預設即包含 Oracle 異質服務。不過,需有額外的 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 ODBC Driver for Microsoft SQL Server) 上需要安裝額外的第三方軟體。更新和維護 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 ODBC Driver for Microsoft SQL Server,需要手動設定資料類型轉換與對應。

使用 Oracle 異質服務設定 Oracle Database Gateway

  1. 登入 Azure 主控台,以取得 Oracle Exadata Database Service on Dedicated Infrastructure 資料庫將載入並查詢資料的 Azure SQL Server 資料庫資訊。此資訊是用來告知 Microsoft ODBC Driver 如何連線至 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 管理 (Networking/DNS Management) ,以建立 DNS 專用檢視。將在上一個步驟中建立的專用 DNS 區域加到這個新建立的 DNS 專用檢視,然後啟用變更。
  4. 從 OCI 主功能表選取網路 / 虛擬從屬端網路 (VCN) 。選取佈建 Oracle Database Gateway Oracle Exadata Database Service on Dedicated Infrastructure 服務時所建立的 VCN (視需要變更區間)。按一下 DNS 解析器連結,然後將從上一個步驟建立的 DNS 專用檢視新增至 DNS 解析器。這將允許將名稱和 IP 位址解析從 Oracle Exadata Database Service on Dedicated Infrastructure 到執行 Oracle Database Gateway 的 Azure VM。
  5. Login to one of the Oracle Exadata Database Service on Dedicated Infrastructure VM Cluster nodes to use nslookup to verify the hostname to IP address resolution is working for the Azure virtual machine that will run Oracle Database Gateway.
    例如:
    [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 叢集節點,安裝套裝程式並設定 MicrosoftS ODBC Driver for Microsoft SQL Server。請參閱 Configure and Test Microsoft ODBC Driver for Microsoft SQL Server 以取得相關指示。
  7. 設定 Oracle 異質服務,使用 MS ODBC 驅動程式,將 Oracle Exadata Database Service on Dedicated Infrastructure 資料庫連線至 Azure SQL Server
  8. Oracle Exadata Database Service on Dedicated Infrastructure 可插式資料庫 (PDB) (不在 CDB 中) 中,建立連至 Azure SQL Server 資料庫的資料庫連結。Oracle Exadata Database Service on Dedicated Infrastructure 資料庫預設中的參數 global_names 設為 TRUE,因此必須使用完整的資料庫名稱來建立資料庫連結。建立資料庫連結之後,您可以使用此連結,從 Azure SQL Server 資料庫查詢和載入資料至 Oracle Exadata Database Service on Dedicated Infrastructure 可插式資料庫 (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 是執行 Azure SQL Server 資料庫之 SQL 伺服器的完整主機名稱,從步驟 1 開始。
    • Azure_SQL_Server_Username 是現有 Azure SQL Server 使用者名稱,從步驟 1 開始。
    • Azure_SQL_User_PasswordAzure SQL Server 使用者從步驟 1 連線至資料庫的密碼。
    • Database_NameAzure SQL Server 資料庫的名稱,從步驟 1 開始。
  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 ODBC Driver for Microsoft SQL Server。

  1. Oracle Exadata Database Service on Dedicated Infrastructure VM 叢集的所有節點上,執行下列命令以安裝 Microsoft ODBC Driver for Microsoft SQL Server 和 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 ODBC Driver for Microsoft SQL 的軟式連結。如果未建立連結,請使用 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_1Azure SQL Server 資料庫的名稱,從步驟 1 取得。
    • 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_1Azure SQL Server 資料庫的名稱,從步驟 1 取得。
    • 使用者名稱Azure SQL Server 的使用者名稱,從步驟 1
    • User_PasswordAzure SQL Server 使用者的密碼,來自步驟 1
    • some_table 是您資料庫中的表格名稱。
  6. Oracle Exadata Database Service on Dedicated Infrastructure VM 叢集的所有節點上,使用 Microsoft SQL 工具驗證 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_1Azure SQL Server 資料庫的名稱,從步驟 1 取得。
    • 使用者名稱Azure SQL Server 的使用者名稱,從步驟 1
    • User_PasswordAzure SQL Server 使用者的密碼,來自步驟 1
    • some_table 是您資料庫中的表格名稱。
現在可以從在 Oracle Exadata Database Service on Dedicated InfrastructureAzure SQL Server 上執行的 Oracle Linux 作業系統,使用 Microsoft ODBC Driver for Microsoft SQL Server,使用 Azure 與 OCI 之間的 OracleDB for Azure 快速延遲互連,從 Oracle Exadata Database Service on Dedicated Infrastructure 節點上執行的 Oracle Linux 作業系統建立連線。

設定 Oracle 異質服務

使用 Microsoft SQL Server 的 Microsoft ODBC 驅動程式建立 Oracle Exadata Database Service on Dedicated Infrastructure Oracle Linux 作業系統與 Azure SQL Server 資料庫的連線之後,請依照下列步驟設定 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_1Azure SQL Server 資料庫的名稱,從步驟 1 取得。
    • Fully_Qualified_Server_Name_From_Step_1 是執行 Azure SQL Server 資料庫之 SQL Server 的完整主機名稱,從步驟 1
  2. Oracle Exadata Database Service on Dedicated Infrastructure VM 叢集的所有節點上,為 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 驅動程式。此驅動程式包含由 ODBC 驅動程式針對 Microsoft SQL Server 呼叫的基本函數,例如 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_1Azure SQL Server 資料庫的名稱,從步驟 1 取得。
    • Database_Home 是資料庫本位目錄名稱。
    • Server_Name 是完整伺服器名稱的主機名稱,從步驟 1 開始。
  3. Oracle Exadata Database Service on Dedicated Infrastructure VM 叢集的所有節點上,將下列各行新增至 tnsnames.ora 檔案,讓資料庫能夠解析成 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)
     )
    範例中的變數具有下列值:
    • exa_dbnameOracle Exadata Database Service on Dedicated Infrastructure 資料庫的名稱。
    • Database_Name_From_Step_1Azure SQL Server 資料庫的名稱,從步驟 1 取得。
  4. Oracle Exadata Database Service on Dedicated Infrastructure VM 叢集的兩個節點上,透過在 Oracle Exadata Database Service on Dedicated Infrastructure 資料庫的「資料庫本位目錄」上建立 listener.ora 檔案,為 Oracle 異質服務建立連接埠 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_1Azure SQL Server 資料庫的名稱,從步驟 1 取得。
    • Database_Home 是資料庫本位目錄名稱。
  5. Oracle Exadata Database Service on Dedicated Infrastructure VM 叢集的某個節點上,將新的本機監聽器新增為 Oracle Cluster Ready Services (CRS) 作為 root 使用者。
    例如:
    [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_1Azure SQL Server 資料庫的名稱,從步驟 1 取得。
    • 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_1Azure SQL Server 資料庫的名稱,從步驟 1 開始。
  7. Oracle Exadata Database Service on Dedicated Infrastructure VM 叢集的其中一個節點上,以 oracle 使用者身分確認本機監聽器確實監聽了 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 ~]$
    範例中的變數具有下列值:
    • exa_dbnameOracle Exadata Database Service on Dedicated Infrastructure 資料庫的名稱。
    • Database_Name_From_Step_1Azure SQL Server 資料庫的名稱,從步驟 1 取得。
  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_1Azure SQL Server 資料庫的名稱,從步驟 1 取得。
    • Database_Home 是資料庫本位目錄名稱。
    • exa_dbnameOracle Exadata Database Service on Dedicated Infrastructure 資料庫的名稱。