1

我在创建从 ORACLE DBCS 到 ORACLE ATP 的数据库链接时遇到了挑战。

我正在创建从 ORACLE DBCS (PAAS) 到 ORACLE ATP(自治事务处理)数据库的数据库链接。我似乎无法为此获得正确的连接设置。有成功过的人吗?

我使用 SQLDeveloper 与 ORACLE ATP 的连接是一个压缩钱包。

CREATE DATABASE LINK TARGET_DB 
CONNECT TO admin IDENTIFIED BY "Myp@ssword123!"
USING 
'(DESCRIPTION=
    (ADDRESS=
     (PROTOCOL=tcps)
     (HOST=99.99.99.99) 
     (PORT=1522))
    (CONNECT_DATA=
     (service_name=eoakbwd540pwkbi_myuseratp_high.atp.oraclecloud.com)))';

-- ip地址和服务名是假的

当我使用 SQLDeveloper 测试数据库链接时,我得到了ORA-28788错误代码。

4

1 回答 1

0

0. 设置

您从两个实例开始:

从包含 和一些钱包文件的 ATP 实例tnsnames.ora下载sqlnet.ora钱包zip文件。

然后将解压缩的文件上传到您的 DBCS 实例。

1. 钱包配置

在 DBCS 上:将文件夹中的sqlnet.oraand替换为 zip 文件中的那些(如果您有仍然需要的现有条目,可能需要合并它们)。tnsnames.ora$ORACLE_HOME/network/admin

WALLET_LOCATION将文件中的替换sqlnet.ora为您的钱包文件的实际位置(特别是cwallet.ssoand ewallet.p12)。确保权限对 oracle 用户开放。

2. 数据库链接

您有两个数据库链接选项(我知道)。randomatp_high首先从您的tnsnames.ora文件中获取服务名称(例如)。

  • 在数据库链接连接命令中使用 ATP 管理员用户的用户名/密码

    create database link <DBLinkName> connect to ADMIN identified by "<ATPpassword>" using '<ATPServiceName>';

  • 在 DBCS 和 ATP 中创建两个具有相同用户名和相同密码的用户,以该用户身份连接到 DBCS,然后:

    create database link <DBLinkName> using '<ATPServiceName>';

您可能需要使用alter session set global_names=false;ORA-02085 来帮助说明数据库链接已连接到不同的数据库。

3. 测试

使用例如测试数据库链接: select banner from v$version@<DBLinkName>;

于 2019-03-11T10:16:15.267 回答