创建从 Autonomous Database 到其他 Autonomous Database 的非 TLS 数据库链接

您可以创建非 TLS 数据库链接,从基于专用 Exadata 基础设施的 Autonomous Database 创建到专用端点上的目标 Autonomous Database。

Autonomous Database 到目标 Autonomous Database 的非 TLS 数据库链接的先决条件

列出创建指向专用端点上的目标 Autonomous Database 的非 TLS 数据库链接的先决条件。

要在专用端点上创建指向目标 Autonomous Database 的数据库链接,请执行以下操作:

  • 目标数据库必须可从源数据库的 Oracle Cloud Infrastructure VCN 访问。例如,可以在以下情况下连接到目标数据库:

    • 目标数据库位于专用端点上。

    • 源数据库和目标数据库都位于同一 Oracle Cloud Infrastructure VCN 中。

    • 源数据库和目标数据库位于不同的配对 Oracle Cloud Infrastructure VCN 中。

    • 目标数据库使用 FastConnect 或 VPN 连接到源数据库的 Oracle Cloud Infrastructure VCN。

  • 对于专用端点上的目标,DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 支持使用 hostname 参数指定单个主机名。在专用端点上,不支持使用 IP 地址、SCAN IP 或 SCAN 主机名(当目标位于公共端点上时,CREATE_DATABASE_LINK 支持使用 IP 地址、SCAN IP 或 SCAN 主机名)。

  • DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 不支持 hostname 参数的值 localhost

  • 必须为专用端点定义以下入站和出站规则:

    • 在源数据库的子网安全列表或网络安全组中定义出站规则,以便允许通过 TCP 传输到目标数据库的 IP 地址和端口号的流量。

    • 在目标数据库的子网安全列表或网络安全组中定义入站规则,以便允许通过 TCP 的流量从源数据库 IP 地址传输到目标端口。

创建指向目标 Autonomous Database 的非 TLS 数据库链接

您可以创建非 TLS 数据库链接,从基于专用 Exadata 基础设施的 Autonomous Database 创建到位于专用端点上的目标 Autonomous Database

根据需要执行先决条件步骤。有关详细信息,请参阅从 Autonomous Database 到目标 Autonomous Database 的非 TLS 数据库链接的先决条件

要在专用端点上创建指向目标 Autonomous Database 的非 TLS 数据库链接,请执行以下操作:

  1. 创建身份证明以访问目标 Autonomous Database 实例。使用 DBMS_CLOUD.CREATE_CREDENTIAL 指定的 usernamepassword 是数据库链接中使用的目标数据库的身份证明(通过 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 => '1521',
             service_name => 'example_high.adb.oraclecloud.com',
             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 主机名)。

    ADMIN 以外的用户需要特权才能运行 DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK

    如示例中所示,要在没有 wallet 的专用端点上使用 DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 创建到目标数据库的数据库链接,需要以下所有项:

    • 对于非 TLS 连接,port 参数值必须设置为 1521。但是,如果在预配 AVMC 时选择了其他 SCAN 监听程序端口号,则必须使用该端口号。有关更多信息,请参见 Create Autonomous Exadata VM Cluster

      directory_name 参数必须为 NULL

    • 可以省略 ssl_server_cert_dn 参数,也可以指定 NULL 值(如果包含)。

    • private_target 参数必须为 TRUE

      注意:

      private_target 参数设置为 TRUE 将使用 TCP 协议而不是 TCPS 创建数据库链接,因此在连接期间不会验证 SSL 证书。
  3. 使用您创建的数据库链接访问目标数据库中的数据。

    例如:

    SELECT * FROM employees@PRIVATE_ENDPOINT_LINK;
                  

注意:

对于在步骤 1 中创建的身份证明,Oracle Database 身份证明,如果目标用户的口令发生更改,则可以更新包含目标用户身份证明的身份证明,如下所示:
BEGIN
     DBMS_CLOUD.UPDATE_CREDENTIAL (
         credential_name => 'DB_LINK_CRED',
         attribute => 'PASSWORD',
         value => 'password');
END;
/

其中,password 是新密码。

执行此操作后,使用此身份证明的现有数据库链接将继续工作,而不必删除并重新创建数据库链接。

有关详情,请参阅CREATE_DATABASE_LINK 过程

数据库链接注释与 Autonomous Database 目标

提供有关创建指向另一个 Autonomous Database 目标的数据库链接的备注。

有关指向其他 Autonomous Database 的数据库链接的说明:

  • 每个目录只有一个 Wallet 文件可用于数据库链接。一次只能将一个 cwallet.sso 上载到为 wallet 文件选择的目录(例如 DBLINK_WALLET_DIR )。这意味着使用 DBLINK_WALLET_DIR 中的 cwallet.sso,您只能创建指向该目录中 Wallet 对其有效的数据库的数据库链接。要将多个 cwallet.sso 文件与数据库链接一起使用,需要创建其他目录并将每个 cwallet.sso 放在不同的目录中。使用 DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 创建数据库链接时,使用 directory_name 参数指定包含 wallet 的目录。

    有关创建目录的信息,请参见 Create Directory in Autonomous Database

  • 要列出数据库链接,请使用 ALL_DB_LINKS 视图。有关详细信息,请参阅 Oracle Database 19c Database Reference 中的 ALL_DB_LINKSOracle Database 23ai Database Reference

  • 通过 Wallet 文件以及数据库用户 ID 和密码,可以访问目标 Autonomous Database 中的数据。将 wallet 文件存储在安全位置。仅与授权用户共享 wallet 文件。

  • DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 输入应将目标专用 Autonomous Database 的扫描名称作为 'hostname' 参数。