数据库链接到ATP / ADW

时间:2019-01-28 03:31:10

标签: database oracle oracle-cloud-infrastructure oracle18c

在创建从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错误代码。

1 个答案:

答案 0 :(得分:0)

0。设置

您从两个实例开始:

  • DBCS-以我为例,在security lists

  • 中打开了端口1521的企业版/12.2
  • ATP实例

Download the wallet zip-file来自ATP实例,其中包含tnsnames.orasqlnet.ora和一些钱包文件。

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

1。钱包配置

在DBCS上:用zip文件中的sqlnet.oratnsnames.ora文件夹中的$ORACLE_HOME/network/adminWALLET_LOCATION(如果您仍然需要现有条目,则可能需要合并它们) 。

用您的钱包文件的实际位置(特别是sqlnet.oracwallet.sso)替换ewallet.p12文件中的randomatp_high。确保已为oracle用户打开了权限。

2。数据库链接

您有两个数据库链接选项(我知道)。首先从您的tnsnames.ora文件中获取服务名称(例如create database link <DBLinkName> connect to ADMIN identified by "<ATPpassword>" using '<ATPServiceName>';)。

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

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

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

    alter session set global_names=false;

您可能需要使用select banner from v$version@<DBLinkName>;来帮助ORA-02085,说数据库链接已连接到另一个DB。

3。测试

使用以下方法测试数据库链接: dfa = pd.DataFrame({'c1':['v','f','h','m','s','d'],'c2':['100','110','235','999','333','39'],'c3':['tech','jjj',None,'iii','mnp','lf'],'c4':['hhh','scb','kkk','lop','sos','kdk']}) dfb = pd.DataFrame({'c1':['v','h','m','f','L','s'],'c2':['100','235','999','110','777','333'],'c3':['tech',None,'iii','jkl','9kdf','mnp1'],'c4':['hhh','mckkk','lok','scb','ooo','sos1']})