使用数据链时报错ORA-12545/TNS-12545的重现和解决

1. 查看 tnsnames.ora中条目 :

bys3_dblk =

  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = bys3.bys.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = bys3)
    )
  )
/etc/hosts中不写bys3.bys.com与IP的对应,也无法通过DNS得到bys3.bys.com的IP。

2.创建数据链并使用---
BYS@ bysrac1>create database link bys3_db connect to test9 identified by test9 using 'bys3_dblk';
Database link created.

此时使用DBLINK:  执行了很长时间,报错:ORA-12545:Connect failed because target host or object does not exist
21:42:57 BYS@ bysrac1>select * from test9@BYS3_DB;
select * from test9@BYS3_DB
                    *
ERROR at line 1:
ORA-12545: Connect failed because target host or object does not exist
Elapsed: 00:02:40.25
###########3
3.查看日志中报错信息:
[oracle@bysrac1 ~]$ cat alert_bysrac1.log
创建和使用数据链时会有类似如下报错日志:  --截取部分
Sat Dec 28 21:41:29 2013
***********************************************************************
Fatal NI connect error 12545, connecting to:
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=racdg)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=racdg)(CID=(PROGRAM=oracle)(HOST=bysrac1.bys.com)(USER=oracle))))

  VERSION INFORMATION:
        TNS for Linux: Version 11.2.0.1.0 - Production
        TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production
  Time: 28-DEC-2013 21:41:29
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12545
    
TNS-12545: Connect failed because target host or object does not exist
    ns secondary err code: 12560
    nt main err code: 515
    
TNS-00515: Connect failed because target host or object does not exist
    nt secondary err code: 110
    nt OS err code: 0
###########
4.解决方法:

/etc/hosts中增加相应条目:

192.168.1.211   bys3.bys.com    bys3
ping bys3.bys.com   测试正常。

BYS@ bysrac1>select * from test9@bys3_db;
AA
----------
dblink-ok    ---此时重新登陆数据库,使用数据链正常:
使用DBeaver连接Oracle数据库报错ORA-12505, TNS:listener does not currently know of SID given in connect descriptor。这个错误通常是由于连接描述符中提供的SID在监听器中未被识别引起的。有几种可能的解决方案可以尝试。 首先,我们可以检查tnsnames.ora文件,它通常位于Oracle安装目录的ADMIN文件夹中。在该文件中,查找SERVICE_NAME的值,并确保它与连接描述符中的数据库名称一致。 其次,需要注意的是,在配置DBeaver中的Oracle数据库登录信息,应选择SID而不是Service Name。同,用户名通常默认为system,密码是在安装Oracle设置的口令。 如果上述方法仍然无法解决问题,可以尝试使用SQLPlus登录数据库,确认数据库的SID名称。管理员可以通过SQLPlus登录数据库,而应用程序如DBeaver通过JDBC连接无法成功连接。这是因为使用SQLPlus连接使用的是server_name,而外部软件如DBeaver使用的是SID name来连接。因此,解决这个问题需要找到数据库的SID name,并在连接描述符中正确配置。 总结起来,解决ORA-12505错误的步骤如下: 1. 检查tnsnames.ora文件,确认其中的SERVICE_NAME值与连接描述符中的数据库名称一致。 2. 在DBeaver中配置Oracle数据库登录信息,使用SID而不是Service Name,用户名为system,密码为安装Oracle所设置的口令。 3. 如果问题仍然存在,使用SQLPlus登录数据库,确认数据库的SID名称,并在连接描述符中正确配置。 希望这些解决方案能够帮助您成功连接Oracle数据库。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [使用dbeaver链接oracle报错ORA-12505, TNS:listener does not currently know of SID given in connect ...](https://blog.csdn.net/lx2wenhui/article/details/130677888)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [DBeaver连接Oracle11g数据库解决报错ORA-12505](https://blog.csdn.net/qq_43482325/article/details/105979505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值