Cause: java.sql.SQLException: ORA-02019: 未找到远程数据库的连接说明


记一次迁移数据库带来的坑,Cause: java.sql.SQLException: ORA-02019: 未找到远程数据库的连接说明

服务是中途接手,不知道之前是怎么部署的需要注意什么,最近需要迁移此服务的数据库,迁移完毕后服务不能正常使用了,查日志报错Cause: java.sql.SQLException: ORA-02019: 未找到远程数据库的连接说明,原来此服务做了跨库查询然后创建了Database Link ,这坑挖的,也不在服务说明里注明一下,然后就开始创建Database Link 。

create database link linkName
connect to linkUser identified by linkPwd
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = linkIP)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = linkServiceName)
)
)';

使用dblink例如:select * from tableName@linkName;

这里linkName自己定,linkUser和linkPwd就是我这里的数据库B的用户名、密码,linkIP是B所在服务器的ip,1521是默认端口不一样的直接改,然后是linkServiceName是服务名,这里如果是SID名,就换成SID_NAME=linkSIDName。

1.简单创建SQL如下

CREATE PUBLIC DATABASE LINK dblink_test CONNECT TO 当前登陆用户名 IDENTIFIED BY 用户密码 using 'IP:PORT/SID';

2.查询数据表

select * from 数据表@dblink_test

3.对于经常使用的数据库链接,可以建立一个本地的同义词,方便使用:

CREATE OR REPLACE SYNONYM 数据表名 FOR 数据表名@test;


Whatever is worth doing is worth doing well.