Autonomous AI DatabaseではないOracle AI Databaseへのデータベース・リンクの作成

Autonomous AI Databaseから、プライベート・エンドポイントまたはパブリック・エンドポイント(パブリック・アクセス可能)にあるOracle AI Databaseへのデータベース・リンクを作成できます。

ノート

ノート:データベース・リンクのターゲットが別のAutonomous AIデータベースである場合、Autonomous AIデータベースから別のAutonomous AIデータベースへのデータベース・リンクの作成を参照してください。

Autonomous AI DatabaseからWallet(mTLS)を使用したパブリック・アクセス可能なOracle AI Databaseへのデータベース・リンクの作成

Autonomous AI Databaseから、パブリック・エンドポイントにあるターゲットOracle AI Databaseへのデータベース・リンクを作成できます。

Autonomous AI Databaseでデータベース・リンクを使用するには、SSL付きTCP/IP (TCPS)認証を使用するようにターゲット・データベースを構成する必要があります。Autonomous AI Databaseは、デフォルトでSSL付きTCP/IP (TCPS)認証を使用するため、別のAutonomous AI Databaseにリンクするためにターゲット・データベースで追加の構成を行う必要はありません。その他のOracle AIデータベースは、SSL付きTCP/IP (TCPS)認証を使用するように構成する必要があります。詳細は、「Secure Sockets Layer認証の構成」を参照してください。

パブリック・ターゲットへのデータベース・リンクを作成するには、ターゲットのOracle AI Databaseにアクセスできる必要があります。データベースによっては、アクセスが制限される場合があります(アクセス制御リストの使用など)。データベース・リンクを機能するように、ターゲット・データベースがソース・データベースからのアクセスを許可していることを確認してください。アクセス制御リスト(ACL)を使用してアクセスを制限すると、ソースAutonomous AI DatabaseのアウトバウンドIPアドレスを検索し、そのIPアドレスをターゲット・データベースに接続することを許可できます。

詳細は、Autonomous AIデータベースからDatabase Cloud Serviceインスタンスへのデータベース・リンクの作成方法を参照してください。

ウォレット(mTLS)を使用してターゲットOracle AI Databaseへのデータベース・リンクを作成するには:

  1. ターゲット・データベースの証明書を含むターゲット・データベース・ウォレットcwallet.ssoをオブジェクト・ストアにコピーします。

    ウォレット・ファイルについて次の点に注意してください。

    • ウォレット・ファイルは、データベース・ユーザーIDおよびパスワードと組み合せて、ターゲットOracle AI Database内のデータへのアクセスを可能にする。ウォレット・ファイルは安全な場所に保存してください。ウォレット・ファイルは、権限のあるユーザーとのみ共有してください。

    • ウォレット・ファイルの名前を変更しないでください。オブジェクト・ストレージのウォレット・ファイルには、cwallet.ssoという名前を付ける必要があります。

  2. ウォレット・ファイルcwallet.ssoを格納するオブジェクト・ストアにアクセスするための資格証明を作成します。様々なオブジェクト・ストレージ・サービスのusernameおよびpasswordパラメータの詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

    リソース・プリンシパル資格証明を有効にする場合、Oracle Cloud Infrastructureオブジェクト・ストアにアクセスするための資格証明の作成は必要ありません。詳細は、リソース・プリンシパルを使用したOracle Cloud Infrastructureリソースへのアクセスを参照してください。

  3. ウォレット・ファイルcwallet.ssoのディレクトリをAutonomous AI Databaseに作成します。

    たとえば:

    CREATE DIRECTORY *dblink_wallet_dir* AS '*directory_path_of_your_choice*';

    ディレクトリの作成の詳細は、「Autonomous AI Databaseでのディレクトリの作成」を参照してください。

  4. DBMS_CLOUD.GET_OBJECTを使用して、前のステップで作成したディレクトリDBLINK_WALLET_DIRにターゲット・データベース・ウォレットをアップロードします。

    たとえば:

    BEGIN
        DBMS_CLOUD.GET_OBJECT(
            credential_name => 'DEF_CRED_NAME',
            object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/cwallet.sso',
            directory_name => '*DBLINK_WALLET_DIR*');
    END;
    /

    この例では、namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。

    ノート

    ノート:このステップで使用するcredential_nameは、オブジェクト・ストアの資格証明です。次のステップでは、ターゲット・データベースにアクセスするための資格証明を作成します。

    リソース・プリンシパル資格証明を有効にする場合、Oracle Cloud Infrastructureオブジェクト・ストアにアクセスするための資格証明の作成は必要ありません。詳細は、リソース・プリンシパルを使用したOracle Cloud Infrastructureリソースへのアクセスを参照してください。

  5. Autonomous AI Databaseインスタンスで、ターゲット・データベースにアクセスするための資格証明を作成します。DBMS_CLOUD.CREATE_CREDENTIALで指定したusernameおよびpasswordは、データベース・リンクの作成に使用するターゲット・データベースの資格証明になります。

    ノート

    ノート: credential_nameパラメータの指定は必須です。

    たとえば:

    BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'DB_LINK_CRED',
            username => 'NICK',
            password => 'password');
    END;
    /

    usernameパラメータの文字はすべて大文字である必要があります。

    ノート

    ノート:データベース・リンクのターゲット・データベース資格証明には、ボールト・シークレット資格証明を使用できます。詳細は、ボールト・シークレット資格証明の使用を参照してください。

    この操作によって、資格証明が暗号化された形式でデータベースに格納されます。資格証明には任意の名前を使用できます。

  6. DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、ターゲット・データベースのデータベース・リンクを作成します。

    たとえば:

    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name => 'SALESLINK',
            hostname => 'adb.eu-frankfurt-1.oraclecloud.com',
            port => '1522',
            service_name => 'example_medium.adb.example.oraclecloud.com',
            credential_name => 'DB_LINK_CRED',
            directory_name => '*DBLINK_WALLET_DIR*');
    END;
    /

    ADMIN以外のユーザーがDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを実行するには、権限が必要です。

    directory_nameで指定されたディレクトリ内のウォレット・ファイルがcwallet.ssoでない場合、プロシージャはORA-28759: failure to open fileなどのエラーを報告します。

  7. 作成したデータベース・リンクを使用して、ターゲット・データベースのデータにアクセスします。

    たとえば:

    SELECT * FROM employees@SALESLINK;

ステップ5で作成した資格証明(ターゲット・データベースの資格証明)では、ターゲット・ユーザーのパスワードが変更された場合、ターゲット・ユーザーの資格証明が含まれる資格証明は、次のように更新できます:

BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
        credential_name => 'DB_LINK_CRED',
        attribute => 'PASSWORD',
        value => 'password' );
END;
/

ここで、passwordは新しいパスワードです。

この操作の後、この資格証明を使用する既存のデータベース・リンクは、データベース・リンクを削除して再作成しなくても引き続き機能します。

ノート

ノート: DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用してビッグ・データ・サービスへのリンクを作成できます。詳細は、「Autonomous AI DatabaseからのBig Data Service Hadoop (HDFS)データの問い合せ」を参照してください。

その他の情報については、次のWebサイトを参照してください。

Autonomous AI Databaseからプライベート・エンドポイント上のOracle AI Databaseへのデータベース・リンクの作成

Autonomous AI Databaseから、プライベート・エンドポイントにあるターゲットOracle AI Databaseへのデータベース・リンクを作成できます。

ターゲットのOracle AI Databaseのタイプおよび構成に応じて、次のようになります。

詳細は、Autonomous AIデータベースからDatabase Cloud Serviceインスタンスへのデータベース・リンクの作成方法を参照してください。

Autonomous AI Databaseからプライベート・エンドポイント上のOracle AIデータベースへのデータベース・リンクの前提条件

Autonomous AI Databaseからプライベート・エンドポイントにあるターゲットOracle AI Databaseへのデータベース・リンクを作成するための前提条件をリストします。

プライベート・エンドポイント上のターゲットOracle AI Databaseへのデータベース・リンクを作成するには:

  • ターゲット・データベースは、ソース・データベースのOracle Cloud Infrastructure VCNからアクセスできる必要があります。たとえば、次の場合にターゲット・データベースに接続できます。

    • ターゲット・データベースはプライベート・エンドポイントにあります。

    • ソース・データベースとターゲット・データベースの両方が、同じOracle Cloud Infrastructure VCNにあります。

    • ソース・データベースとターゲット・データベースは、ペアになっている別のOracle Cloud Infrastructure VCNsにあります。

    • ターゲット・データベースは、FastConnectまたはVPNを使用してソース・データベースのOracle Cloud Infrastructure VCNに接続されているオンプレミス・データベースです。

  • ターゲット・データベースを指定する2つのオプションがあり、hostnameパラメータまたはrac_hostnamesパラメータを使用します。

    • プライベート・エンドポイント上のターゲットの場合、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKでは、hostnameパラメータを使用した単一のホスト名の指定がサポートされています。プライベート・エンドポイントでは、IPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません(ターゲットがパブリック・エンドポイント上にある場合、CREATE_DATABASE_LINKはIPアドレス、SCAN IPまたはSCANホスト名の使用をサポートしています)。

    • ターゲットがOracle RACデータベースの場合は、rac_hostnamesパラメータを使用して、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKで1つ以上のホスト名を指定します。これにより、Oracle RACの高可用性機能を利用できます。rac_hostnames値でのIPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません。

      rac_hostnamesパラメータでホスト名のリストを指定すると、CREATE_DATABASE_LINKは、指定されたすべてのホスト名を接続文字列のアドレスとして使用します。指定されたホストの1つがターゲットOracle RACデータベースで使用できない場合、Autonomous AI Databaseは、リストから別のホスト名を使用して自動的に接続を試みます。

  • プライベート・エンドポイントには、次のイングレスおよびエグレス・ルールを定義する必要があります:

    • ソース・データベースのサブネット・セキュリティ・リストまたはネットワーク・セキュリティ・グループにエグレス・ルールを定義して、TCP経由のトラフィックがターゲット・データベースのIPアドレスおよびポート番号に対して許可されるようにします。

    • ソース・データベースのIPアドレスから宛先ポートへのTCP経由のトラフィックが許可されるように、ターゲット・データベースのサブネット・セキュリティ・リストまたはネットワーク・セキュリティ・グループにイングレス・ルールを定義します。

    イングレスおよびエグレス・ルールを使用したプライベート・エンドポイントの構成の詳細は、プライベート・エンドポイントを使用したネットワーク・アクセスの構成を参照してください。

ノート

ノート: Autonomous AI Databaseインスタンスがプライベート・エンドポイントで構成されている場合、ROUTE_OUTBOUND_CONNECTIONSデータベース・プロパティを設定して、すべての送信データベース・リンクがAutonomous AI Databaseインスタンスのプライベート・エンドポイントVCNのエグレス・ルールに従うことを指定します。詳細は、プライベート・エンドポイントを使用したアウトバウンド接続のセキュリティの強化を参照してください。

Walletを使用しないプライベート・エンドポイントでのOracle AIデータベースへのデータベース・リンクの作成

DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、Autonomous AI Databaseから、プライベート・エンドポイント上にあるターゲットOracle AI Databaseへのデータベース・リンクを作成し、ウォレット(TCP)なしで接続します。

ノート

ノート:このオプションは、プライベート・エンドポイントにあり、SSL/TCPSが構成されていないターゲットOracle AIデータベース用です。

必要に応じて、前提条件ステップを実行します。詳細は、Autonomous AIデータベースからプライベート・エンドポイント上のターゲットAutonomous AIデータベースへのデータベース・リンクの前提条件を参照してください。

ウォレットを使用しないセキュアなTCP接続を使用して、プライベート・エンドポイント上のターゲット・データベースへのデータベース・リンクを作成するには:

  1. Autonomous AI Databaseで、ターゲット・データベースにアクセスするための資格証明を作成します。DBMS_CLOUD.CREATE_CREDENTIALで指定するusernameおよびpasswordは、データベース・リンク内で使用されるターゲット・データベースの資格証明です(ターゲット・データベースはVCNを介してアクセスされます)。

    たとえば:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'PRIVATE_ENDPOINT_CRED',
        username => 'NICK',
        password => 'password'
      );
    END;
    /

    usernameパラメータの文字はすべて大文字である必要があります。

    ノート

    ノート:データベース・リンクのターゲット・データベース資格証明には、ボールト・シークレット資格証明を使用できます。詳細は、ボールト・シークレット資格証明の使用を参照してください。

    この操作によって、資格証明が暗号化された形式でデータベースに格納されます。資格証明には任意の名前を使用できます。

  2. DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、ターゲット・データベースのデータベース・リンクを作成します。

    たとえば:

    BEGIN
      DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
        db_link_name => 'PRIVATE_ENDPOINT_LINK',
        hostname => 'exampleHostname',
        port => '1522',
        service_name => '*exampleServiceName*',
        ssl_server_cert_dn => NULL,
        credential_name => 'PRIVATE_ENDPOINT_CRED',
        directory_name => NULL,
        private_target => TRUE
      );
    END;
    /

    プライベート・エンドポイント上のターゲットの場合、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKでは、hostnameパラメータを使用した単一のホスト名の指定がサポートされています。プライベート・エンドポイントでは、IPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません(ターゲットがパブリック・エンドポイント上にある場合、CREATE_DATABASE_LINKはIPアドレス、SCAN IPまたはSCANホスト名の使用をサポートしています)。

    ターゲットがOracle RACデータベースの場合は、rac_hostnamesパラメータを使用して、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKで1つ以上のホスト名を指定します。これにより、Oracle RACの高可用性機能を利用できます。rac_hostnames値でのIPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません。

    たとえば、ターゲットOracle RACデータベースでは、rac_hostnamesパラメータを使用します。

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
             db_link_name => 'PRIVATE_ENDPOINT_LINK',
             rac_hostnames => '["sales1-svr1.example.adb.us-ashburn-1.oraclecloud.com",
                                "sales1-svr2.example.adb.us-ashburn-1.oraclecloud.com",
                                "sales1-svr3.example.adb.us-ashburn-1.oraclecloud.com"]',
             port => '1522',
             service_name => '*exampleServiceName*',
             ssl_server_cert_dn => NULL,
             credential_name => 'PRIVATE_ENDPOINT_CRED',
             directory_name => NULL,
             private_target => TRUE);
    END;
    /

    DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKは、hostnameまたはrac_hostnamesパラメータでlocalhostの値をサポートしていません。

    ADMIN以外のユーザーがDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを実行するには、権限が必要です。

    例に示すように、ウォレットのないセキュアなTCP接続を使用して、プライベート・エンドポイント上のターゲット・データベースへのDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを含むデータベース・リンクを作成するには、次のすべてが必要です。

    • directory_nameパラメータはNULLである必要があります。

    • ssl_server_cert_dnパラメータはNULLである必要があります。

    • private_targetパラメータはTRUEである必要があります。

      ノート

      ノート: ROUTE_OUTBOUND_CONNECTIONSデータベース・プロパティを設定する場合、このAPIでは、private_targetパラメータをTRUEに設定する必要はありません。詳細は、プライベート・エンドポイントを使用したアウトバウンド接続のセキュリティの強化を参照してください。

  3. 作成したデータベース・リンクを使用して、ターゲット・データベースのデータにアクセスします。

    たとえば:

    SELECT * FROM employees@PRIVATE_ENDPOINT_LINK;
    ノート

    ノート:ステップ1で作成した資格証明(Oracle AI Databaseの資格証明)では、ターゲット・ユーザーのパスワードが変更された場合、ターゲット・ユーザーの資格証明を含む資格証明が次のように更新できます:

    BEGIN
      DBMS_CLOUD.UPDATE_CREDENTIAL (
       credential_name => 'DB_LINK_CRED',
       attribute => 'PASSWORD',
       value => 'password'
      );
    END;
    /

    ここで、passwordは新しいパスワードです。

    この操作の後、この資格証明を使用する既存のデータベース・リンクは、データベース・リンクを削除して再作成しなくても引き続き機能します。

詳細は、「CREATE_DATABASE_LINKプロシージャ」を参照してください。

Autonomous AI DatabaseからWallet (mTLS)を使用したプライベート・エンドポイント上のOracle AIデータベースへのデータベース・リンクの作成

Autonomous AI Databaseから、プライベート・エンドポイントにあるターゲットOracle AI Databaseへのデータベース・リンクを作成できます。

ノート

ノート:このオプションは、SSL/TCPSが構成され、プライベート・エンドポイント上にあるターゲットOracle AIデータベース用です。

ターゲットのOracle AI DatabaseにSSL/TCPSが構成されていない場合は、次の2つのオプションがあります。

必要に応じて、前提条件ステップを実行します。詳細は、Autonomous AIデータベースからプライベート・エンドポイント上のターゲットAutonomous AIデータベースへのデータベース・リンクの前提条件を参照してください。

SSL付きTCP/IP (TCPS)認証を使用してプライベート・エンドポイント上のターゲットOracle AI Databaseへのデータベース・リンクを作成するには:

  1. ターゲット・データベースの証明書を含むターゲット・データベース・ウォレットcwallet.ssoをオブジェクト・ストアにコピーします。

    ノート

    ノート:ウォレット・ファイルは、データベース・ユーザーIDおよびパスワードと組み合せて、ターゲットOracle AI Database内のデータへのアクセスを可能にしますウォレット・ファイルは安全な場所に保存してください。ウォレット・ファイルは、権限のあるユーザーとのみ共有してください。

  2. cwallet.ssoを格納するオブジェクト・ストアにアクセスするための資格証明を作成します。様々なオブジェクト・ストレージ・サービスのusernameおよびpasswordパラメータの詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

  3. ウォレット・ファイルcwallet.ssoのディレクトリをAutonomous AI Databaseに作成します。

    たとえば:

     CREATE DIRECTORY WALLET_DIR AS 'directory_path_of_your_choice';

    ディレクトリの作成の詳細は、「Autonomous AI Databaseでのディレクトリの作成」を参照してください。

  4. DBMS_CLOUD.GET_OBJECTを使用して、前のステップで作成したディレクトリWALLET_DIRにターゲット・データベース・ウォレットをアップロードします。

    たとえば:

    BEGIN
      DBMS_CLOUD.GET_OBJECT(
        credential_name => 'DEF_CRED_NAME',
        object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/cwallet.sso',
        directory_name => 'WALLET_DIR');
    END;
    /

    この例では、namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。

    ノート

    ノート:このステップで使用するcredential_nameは、オブジェクト・ストアの資格証明です。次のステップでは、ターゲット・データベースにアクセスするための資格証明を作成します。

  5. Autonomous AI Databaseで、ターゲット・データベースにアクセスするための資格証明を作成します。DBMS_CLOUD.CREATE_CREDENTIALで指定するusernameおよびpasswordは、データベース・リンク内で使用されるターゲット・データベースの資格証明です(ターゲット・データベースはVCNを介してアクセスされます)。

    ノート

    ノート: credential_nameパラメータの指定は必須です。

    たとえば:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DB_LINK_CRED',
        username => 'NICK',
        password => 'password');
    END;
    /

    usernameパラメータの文字はすべて大文字である必要があります。

    ノート

    ノート:データベース・リンクのターゲット・データベース資格証明には、ボールト・シークレット資格証明を使用できます。詳細は、ボールト・シークレット資格証明の使用を参照してください。

    この操作によって、資格証明が暗号化された形式でデータベースに格納されます。資格証明には任意の名前を使用できます。

  6. DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、ターゲット・データベースのデータベース・リンクを作成します。

    たとえば:

    BEGIN
      DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
        db_link_name => 'PEDBLINK1',
        hostname => 'example1.adb.ap-osaka-1.oraclecloud.com',
        port => '1522',
        service_name => '*example_high.adb.oraclecloud.com*',
        ssl_server_cert_dn => '*ssl_server_cert_dn*',
        credential_name => 'DB_LINK_CRED',
        directory_name => 'WALLET_DIR',
        private_target => TRUE);
    END;
    /

    ノート

    ノート: ROUTE_OUTBOUND_CONNECTIONSデータベース・プロパティを設定する場合、このAPIでは、private_targetパラメータをTRUEに設定する必要はありません。詳細は、プライベート・エンドポイントを使用したアウトバウンド接続のセキュリティの強化を参照してください。

    プライベート・エンドポイント上のターゲットの場合、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKでは、hostnameパラメータを使用した単一のホスト名の指定がサポートされています。プライベート・エンドポイントでは、IPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません(ターゲットがパブリック・エンドポイント上にある場合、CREATE_DATABASE_LINKはIPアドレス、SCAN IPまたはSCANホスト名の使用をサポートしています)。

    ターゲットがOracle RACデータベースの場合は、rac_hostnamesパラメータを使用して、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKで1つ以上のホスト名を指定します。これにより、Oracle RACの高可用性機能を利用できます。rac_hostnames値でのIPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません。

    たとえば、ターゲットOracle RACデータベースでは、rac_hostnamesパラメータを使用します。

    BEGIN
      DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
        db_link_name => 'PEDBLINK1',
        rac_hostnames => '["sales1-svr1.example.adb.us-ashburn-1. oraclecloud.com",
                           "sales1-svr2.example.adb.us-ashburn-1.oraclecloud.com",
                           "sales1-svr3.example.adb.us-ashburn-1.oraclecloud.com"]',
        port => '1522',
        service_name => '*example_high.adb.oraclecloud.com*',
        ssl_server_cert_dn => '*ssl_server_cert_dn*',
        credential_name => 'DB_LINK_CRED',
        directory_name => 'WALLET_DIR',
        private_target => TRUE);
    END;
    /

    DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKは、hostnameまたはrac_hostnamesパラメータでlocalhostの値をサポートしていません。

    ADMIN以外のユーザーがDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを実行するには、権限が必要です。

  7. 作成したデータベース・リンクを使用して、ターゲット・データベースのデータにアクセスします。

    たとえば:

    SELECT * FROM employees@PEDBLINK1;
    ノート

    ノート:ステップ5で作成した資格証明(Oracle AI Databaseの資格証明)では、ターゲット・ユーザーのパスワードが変更された場合、ターゲット・ユーザーの資格証明を含む資格証明が次のように更新できます:

    BEGIN
      DBMS_CLOUD.UPDATE_CREDENTIAL (
        credential_name => 'DB_LINK_CRED',
        attribute => 'PASSWORD',
        value => 'password');
    END;
    /

    ここで、passwordは新しいパスワードです。

    この操作の後、この資格証明を使用する既存のデータベース・リンクは、データベース・リンクを削除して再作成しなくても引き続き機能します。

詳細は、「CREATE_DATABASE_LINKプロシージャ」を参照してください。

ターゲットOracle AI Databaseとのデータベース・リンクに関するノート

ターゲットOracle AI Databaseへのデータベース・リンクを作成するためのノートを提供します(ターゲットがAutonomous AI Databaseでない場合)

他のOracle AIデータベースへのデータベース・リンクに関するノート:

  • Autonomous AI Databaseと他のOracle AIデータベース間のデータベース・リンクを使用している場合は、Autonomous AI DatabaseではないOracle AI Databaseにパッチ33843368を適用する必要がある場合があります。これは、Autonomous AI Databaseインスタンスがデータベース・リンクのソースまたはターゲットである場合に適用されます。

    詳細は、My Oracle Supportのナレッジ・ベース: Patch Requirement For Database Links Between ADB-S And Other Oracle AI Databases(Doc ID 2874244.1)を参照してください。

  • データベース・リンクで使用できるウォレット・ファイルは、ディレクトリごとに1つのみ有効です。ウォレット・ファイル用に選択したディレクトリに一度にアップロードできるのは1つのcwallet.ssoのみです(DBLINK_WALLET_DIRなど)。つまり、DBLINK_WALLET_DIRcwallet.ssoでは、そのディレクトリ内のウォレットが有効なデータベースへの データベース・リンクのみを作成できます。データベース・リンクで複数のcwallet.ssoファイルを使用するには、追加のディレクトリを作成し、各cwallet.ssoを異なるディレクトリに配置する必要があります。DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用してデータベース・リンクを作成する場合は、directory_nameパラメータでウォレットを含むディレクトリを指定します。

    ディレクトリの作成の詳細は、「Autonomous AI Databaseでのディレクトリの作成」を参照してください。

  • 別のOracle AI Databaseへのデータベース・リンクでサポートされているターゲットOracle AI Databaseのバージョンは、19c、12.2.0および12.1.0です。

    Note

    Note:サポートされているバージョンの詳細は、Client Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)を参照してください。

  • Autonomous AI DatabaseではSEC_CASE_SENSITIVE_LOGONパラメータがtrueに設定され、この値は変更できません。ターゲット・データベースがAutonomous AI Databaseでない場合は、ターゲット・データベースでSEC_CASE_SENSITIVE_LOGONパラメータをtrueに設定する必要があります。ターゲット・データベースでSEC_CASE_SENSITIVE_LOGONfalseに設定されている場合、エラーORA-28040: No matching authentication protocolが発生します。

  • データベース・リンクをリストするには、ALL_DB_LINKSビューを使用します。詳細は、「ALL_DB_LINKS」を参照してください。

  • ウォレット・ファイルは、データベース・ユーザーIDおよびパスワードと組み合せて、ターゲットOracle AI Database内のデータへのアクセスを可能にする。ウォレット・ファイルは安全な場所に保存してください。ウォレット・ファイルは、権限のあるユーザーとのみ共有してください。

  • Autonomous AI Databaseインスタンスがプライベート・エンドポイントにある場合、ターゲット・データベースを指定する2つのオプションがあります: hostnameパラメータまたはrac_hostnamesパラメータのいずれかを使用します:

    • プライベート・エンドポイント上のターゲットの場合、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKでは、hostnameパラメータを使用した単一のホスト名の指定がサポートされています。プライベート・エンドポイントでは、IPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません(ターゲットがパブリック・エンドポイント上にある場合、CREATE_DATABASE_LINKはIPアドレス、SCAN IPまたはSCANホスト名の使用をサポートしています)。

    • ターゲットがOracle RACデータベースの場合は、rac_hostnamesパラメータを使用して、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKで1つ以上のホスト名を指定します。これにより、Oracle RACの高可用性機能を利用できます。rac_hostnames値でのIPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません。

      rac_hostnamesパラメータでホスト名のリストを指定すると、CREATE_DATABASE_LINKは、指定されたすべてのホスト名を接続文字列のアドレスとして使用します。指定されたホストの1つがターゲットOracle RACデータベースで使用できない場合、Autonomous AI Databaseは、リストから別のホスト名を使用して自動的に接続を試みます。

    • DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKは、hostnameまたはrac_hostnamesパラメータでlocalhostの値をサポートしていません。

  • private_target => TRUEの場合、ソース・データベースとターゲット・データベースが異なるOracle Cloud Infrastructureレルムにあるクロスレルム・データベース・リンクの作成はサポートされていません。