在创建从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
错误代码。
答案 0 :(得分:0)
您从两个实例开始:
DBCS-以我为例,在security lists
ATP实例
Download the wallet zip-file来自ATP实例,其中包含tnsnames.ora
,sqlnet.ora
和一些钱包文件。
然后将解压缩的文件上传到您的DBCS实例。
在DBCS上:用zip文件中的sqlnet.ora
和tnsnames.ora
文件夹中的$ORACLE_HOME/network/admin
和WALLET_LOCATION
(如果您仍然需要现有条目,则可能需要合并它们) 。
用您的钱包文件的实际位置(特别是sqlnet.ora
和cwallet.sso
)替换ewallet.p12
文件中的randomatp_high
。确保已为oracle用户打开了权限。
您有两个数据库链接选项(我知道)。首先从您的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。
使用以下方法测试数据库链接:
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']})