1、报错现象
客户方的大哥找到我说,他们这有个A数据库上有个到B数据库的DBLINK过完年回来突然不通了,他们也测试了重建还是不好使,让我帮看看。
于是我也测试了一下,真的是不通了:
SQL> select sysdate from dual@jlsi_sspt;
select sysdate from dual@jlsi_sspt
*
ERROR at line 1:
ORA-02085: database link JLSI_SSPT connects to ORCL
我又去SQLDEVELOPER 工具上测试了一下,多了一点报错信息提示。
ORA-02085: 数据库链接 JLSI_SSPT 连接到 ORCL
02085. 00000 - "database link %s connects to %s"
*Cause: a database link connected to a database with a different name.
The connection is rejected.
*Action: create a database link with the same name as the database it
connects to, or set global_names=false.
2、开始排查
为了排除网络上的问题,我在A服务器上创建1个服务名叫DB122到b数据库。
oracle@XDB1:~$ tnsping DB122
TNS Ping Utility for Solaris: Version 12.2.0.1.0 - Production on 21-FEB-2024 15:12:48
Copyright (c) 1997, 2016, Oracle. All rights reserved.
Used parameter files:
/u01/app/oracle/product/12.2.0/dbhome_1/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = XXXXXX)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
OK (0 msec)
看起来应该是没有毛病,于是尝试用对应的用户名密码登录下B数据库。
oracle@XDB1:~$ sqlplus 用户名/密码@DB122
SQL*Plus: Release 12.2.0.1.0