Oracle Heterogenous Servicesを使用したデータのロード

OracleDB for Azureを使用すると、AzureアプリケーションでOCIデータベースからデータをロードおよび問合せできます。このアーキテクチャでは、Oracle Exadata Database Service on Dedicated InfrastructureOracleDB for Azureによって提供されるインフラストラクチャを活用して、Oracle Exadata Database Service on Dedicated Infrastructureが提供するOracle Heterogenousサービスを介したデータベース・リンクを使用してAzure SQL Serverからデータをロードする方法について説明します。

アーキテクチャ

このアーキテクチャでは、Oracle Exadata Database Service on Dedicated Infrastructureを使用して、Oracle Exadata Database Service on Dedicated Infrastructureで実行されているOracle Heterogenous Servicesを使用して、データベース・リンクを持つ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仮想マシン

これらは、各サービスに必要なロールです。

サービス名: ロール 必要...
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 Heterogenous Servicesに関する考慮事項

Oracle Heterogenousサービスを使用してデータをロードする場合は、次の考慮事項を確認してください。

  • 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 Virtual Cloud Network (VCN)でプライベートDNSゾーンを構成できます。
  • Oracle Exadata Database Service on Dedicated Infrastructureデータベースでは、パラメータglobal_namesはデフォルトでTRUEに設定されます。したがって、完全修飾データベース名は、Azure SQL Serverへのデータベース・リンクを作成する際に使用する必要があります
  • Oracle Exadata Database Service on Dedicated Infrastructureデータベースには、Oracle Heterogenous Servicesがデフォルトで含まれています。ただし、サードパーティ・データベースに接続するには、追加のMicrosoft ODBCドライバが必要です。Azure SQL Serverデータベースの場合は、Microsoft ODBC Driver for Microsoft SQL Serverをお薦めします。

Oracle Heterogenous Servicesの利点

  • Oracle Heterogenous Servicesは、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 Heterogenous Servicesの短所

  • 追加のサードパーティ・ソフトウェアをOracle Exadata Database Service on Dedicated Infrastructure (Microsoft ODBC Driver for Microsoft SQL Server)にインストールする必要があります。Oracle Exadata Database Service on Dedicated Infrastructure環境を更新および保守する際には、追加のステップが必要になる場合があります。
  • Oracle Heterogenous Servicesは、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 Heterogenous Servicesを使用したOracle Database Gatewayの構成

  1. Log in to the Azure console to obtain the information for the Azure SQL Server database from which the Oracle Exadata Database Service on Dedicated Infrastructure database will load and query data.この情報は、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クラスタ・ノードの1つにログインし、nslookupを使用して、Oracle Database Gatewayを実行するAzure仮想マシンでホスト名からIPアドレスへの解決が機能していることを確認します。
    次に例を示します。
    [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. MS ODBCドライバを使用してOracle Exadata Database Service on Dedicated InfrastructureデータベースをAzure SQL Serverに接続するためのOracle Heterogenous Servicesを構成します。
  8. Oracle Exadata Database Service on Dedicated Infrastructure プラガブル・データベース(PDB)(CDBにはない)で、Azure SQL Serverデータベースへのデータベース・リンクを作成します。パラメータglobal_namesは、デフォルトではOracle Exadata Database Service on Dedicated Infrastructureデータベースで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_nameは、Oracle 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_Passwordは、Azure 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 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. Microsoft ODBC Driver for Microsoft SQL ServerがOracle Exadata Database Service on Dedicated Infrastructure VMクラスタ・ノードにインストールされたら、Microsoft ODBCドライバが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. 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_1は、ステップ1からのAzure SQL Serverデータベースの名前です。
    • Fully_Qualified_Server_Name_From_Step_1は、ステップ1からのSQL Serverの完全修飾ホスト名です。
  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は、ステップ1からのAzure SQL Serverデータベースの名前です。
    • 「ユーザー名」は、Azure SQL Serverステップ1からのユーザー名です。
    • User_Passwordは、Azure SQL Serverユーザーのステップ1からのパスワードです。
    • 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は、ステップ1からのAzure SQL Serverデータベースの名前です。
    • 「ユーザー名」は、Azure SQL Serverステップ1からのユーザー名です。
    • User_Passwordは、Azure SQL Serverユーザーのステップ1からのパスワードです。
    • some_tableは、データベースの表名です。
Oracle Exadata Database Service on Dedicated InfrastructureAzure SQL Serverの間の接続は、AzureとOCIの間のOracleDB for Azureの高速低レイテンシ・インターコネクトを使用して、Microsoft ODBC Driver for Microsoft SQL Serverを使用して、Oracle Exadata Database Service on Dedicated Infrastructureノードで実行されているOracle Linux OSから確立できるようになりました。

Oracle Heterogenous Servicesの構成

Microsoft ODBC Driver for Microsoft SQL Serverを使用してOracle Exadata Database Service on Dedicated Infrastructure Oracle Linuxオペレーティング・システムからAzure SQL Serverデータベースへの接続を確立できたら、次のステップに従って、Oracle Exadata Database Service on Dedicated InfrastructureデータベースにOracle Heterogenous Servicesを構成します。
  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は、ステップ1からのAzure SQL Serverデータベースの名前です。
    • Fully_Qualified_Server_Name_From_Step_1は、ステップ1からAzure SQL Serverデータベースが実行されているSQL Serverの完全修飾ホスト名です。
  2. Dedicated Infrastructure VMクラスタのすべてのノードで、Oracle Exadata Database Service on Dedicated Infrastructureデータベースの異種サービスの構成ファイルを作成します。この構成ファイルは、次のパラメータを使用して、Oracle Exadata Database Service on Dedicated InfrastructureデータベースのOracle Database Homeに作成する必要があります。
    [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.osは、Oracle Exadata Database Service on Dedicated InfrastructureのOracle Linuxに含まれるODBCドライバです。このドライバには、ODBC Driver for Microsoft SQL ServerによってコールされるSQLColAttributeなどの基本関数が含まれています。
    • Oracle異機種間サービスは、前のステップで作成したODBC構成ファイルを指すODBCINIパラメータに従ってMicrosoft ODBCドライバをコールします。
    • パラメータHS_DB_NAMEに指定するServer_Nameは、大文字にする必要があります。
    • ここに入力するHS_NLS_NCHARおよびHS_LANGUAGEパラメータ値は、Azure SQL ServerおよびOracle Exadata Database Service on Dedicated Infrastructureデータベースの作成に使用される文字セットによって異なります。
    例の変数には次の値があります。
    • Database_Name_From_Step_1は、ステップ1からのAzure SQL Serverデータベースの名前です。
    • Database_Homeはデータベース・ホームの名前です。
    • Server_Nameは、ステップ1からの完全修飾サーバー名のホスト名です。
  3. Oracle Exadata Database Service on Dedicated Infrastructure VMクラスタのすべてのノードで、データベースがOracle Heterogenous Servicesに解決できるように、tnsnames.oraファイルに次の行を追加します。
    [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_dbnameは、Oracle Exadata Database Service on Dedicated Infrastructureデータベースの名前です。
    • Database_Name_From_Step_1は、ステップ1からのAzure 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_dbnameは、Oracle Exadata Database Service on Dedicated Infrastructureデータベースの名前です。
    • Database_Name_From_Step_1は、ステップ1からのAzure SQL Serverデータベースの名前です。
    • Database_Homeはデータベース・ホーム名です。
  5. Oracle Exadata Database Service on Dedicated Infrastructure VMクラスタの1つのノードで、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は、ステップ1からのAzure SQL Serverデータベースの名前です。
    • Database_Homeはデータベース・ホーム名です。
    • exa_dbnameは、Oracle Exadata Database Service on Dedicated Infrastructureデータベースの名前です。
  6. Oracle Exadata Database Service on Dedicated Infrastructure VMクラスタの1つのノードで、リスナーを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ステップ1からのAzure SQL Serverデータベースの名前です。
  7. Oracle Exadata Database Service on Dedicated Infrastructure VMクラスタの1つのノードで、ローカル・リスナーが実際にOracle Heterogenous Servicesをリスニングしていることをユーザー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_dbnameは、Oracle Exadata Database Service on Dedicated Infrastructureデータベースの名前です。
    • Database_Name_From_Step_1は、ステップ1からのAzure SQL Serverデータベースの名前です。
  8. Oracle Exadata Database Service on Dedicated Infrastructure VMクラスタ・ノードの1つから、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は、ステップ1からのAzure SQL Serverデータベースの名前です。
    • Database_Homeはデータベース・ホーム名です。
    • exa_dbnameは、Oracle Exadata Database Service on Dedicated Infrastructureデータベースの名前です。