实战:解决一次离奇的Oracle DBLINK不通问题

文章描述了一个客户遇到的Oracle数据库链接问题,ORACLE-02085错误指出链接名称与目标数据库名称不符。作者通过排查网络、创建临时链接和参考文档,发现解决方案是将全局名字参数global_names设为true,确保链接名称与目标数据库全局名称匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 工具上测试了一下,多了一点报错信息提示。

image.png

具体内容

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数据库。

image.png

执行一下tnsping db122返回结果如下

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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐sir(徐慧阳)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值