通过scanip连接oracle数量,使用scanip连接DB_LINK报错ORA-12545解决

使用scanip连接DB_LINK报错ORA-12545解决

https://www.cndba.cn/Marvinn/article/2695

https://www.cndba.cn/Marvinn/article/2695

客户反应,使用DB_LINK报错ORA-12545: Connect failed because target host or object does not exist

https://www.cndba.cn/Marvinn/article/2695https://www.cndba.cn/Marvinn/article/2695https://www.cndba.cn/Marvinn/article/2695

思路:

https://www.cndba.cn/Marvinn/article/2695

1、检查源端监听是否正常

2、检查目标端TNS配置

使用TNSPING是否通...

3、查看DB_LINK定义是否正确,使用的TNS文件是否对

select * from dba_db_links;

4、网络是否正常

排错:

https://www.cndba.cn/Marvinn/article/2695https://www.cndba.cn/Marvinn/article/2695

1、源端监听正常,数据库正常

2、目标端TNS配置无误,TNSPING可通,但是sqlplus 命令不通,说明还是有问题

3、DB_LINK定义正确...

4、网络ping正常

5、使用不是SCANIP的IP(VIP或者主机IP)配置TNS连接DB_LINK

定位:

1、使用不是SCANIP的IP(VIP或者主机IP)配置TNS连接DB_LINK,发现可以使用DB_LINK连接查询,从中问题定位还是在源端,无法辨别SCANIP这个IP,而ORACLE是通过域名解析IP,尝试使用SCANIP域名配置TNS,但是直接TNsping通不过...此路不通

2、查找相关资料,发现一个参数local_listener,

LOCAL_LISTENER指定解析为Oracle Net本地侦听器(即与此实例在同一台计算机上运行的侦听器)的地址或地址列表的网络名称。地址或地址列表在TNSNAMES.ORA文件或其他地址存储库中为您的系统配置

大概意思是可以把配置中的IP或者域名直接转成数据库服务器系统配置,这样访问该配置中的IP或者域名相当于访问主机了...

但是有一点需要注意:客户端通过SCANIP或者VIP都可以连接到RAC数据库库-

-我这里就是修改为VIP的IP。--其实应该修改为SCANIP,客户端统一使用SCANIP来连接,但是HOST主机参数为scanip地址,则修改完参数后,scanip能够正常使用,但如果有客户端配置使用vip的话,连接时则会出现错误:ORA-12514: TNS:listener does not currently know of service requested in connect descriptor。

所以将其修改成VIP,这里需要注意的是RAC两个节点都修改注册一下该参数

3、具体步骤

查看该参数

SQL> show parameter local_

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

local_listener string

log_archive_local_first boolean TRUE

修改为两个节点为SCANIP,DB_LINK此时为可用

SQL> alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.188.100)(PORT=1521))))' sid='*';

System altered.

SQL> show parameter local_

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

local_listener string (DESCRIPTION=(ADDRESS_LIST=(AD

DRESS=(PROTOCOL=TCP)(HOST=192.

168.188.100)(PORT=1521))))

log_archive_local_first boolean TRUE

SQL> show parameter remote_

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

remote_dependencies_mode string TIMESTAMP

remote_listener string 192.168.188.100:1521

remote_login_passwordfile string EXCLUSIVE

remote_os_authent boolean FALSE

remote_os_roles boolean FALSE

result_cache_remote_expiration integer 0

--注册

SQL> alter system register;

System altered.

--正如上面所说最好修改成VIP,

一节点: 修改过后DB_LINK仍可用...

SQL> alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.188.201)(PORT=1521))))' sid='ecology1';

System altered.

SQL> alter system register;

System altered.

二节点:

SQL> alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.188.202)(PORT=1521))))' sid='ecology2';

SQL> alter system register;

System altered.

另一种解决方案:TNS Failover配置使用VIP也是可以的

RAC =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.188.201)(PORT = 1521))

(ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.188.201)(PORT = 1521))

(LOAD_BALANCE = ON)

(FAILOVER = ON)

)

(CONNECT_DATA =

(SERVICE_NAME = ecologya)

(FAILOVER_MODE =

(TYPE = select)

(METHOD = basic)

(RETRIES = 10)

(DELAY = 1)

)

)

)

至此该问题解决完毕……………..https://www.cndba.cn/Marvinn/article/2695https://www.cndba.cn/Marvinn/article/2695

版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值