签到成功

知道了

CNDBA社区CNDBA社区

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

2018-03-23 19:00 2896 0 原创 ORACLE
作者: Marvinn

使用scanip连接DB_LINK报错ORA-12545解决http://www.cndba.cn/Marvinn/article/2695http://www.cndba.cn/Marvinn/article/2695

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

客户反应,使用DB_LINK报错ORA-12545: Connect failed because target host or object does not existhttp://www.cndba.cn/Marvinn/article/2695

思路:

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

    1、检查源端监听是否正常
    2、检查目标端TNS配置
        使用TNSPING是否通...
    3、查看DB_LINK定义是否正确,使用的TNS文件是否对
        select * from dba_db_links;
    4、网络是否正常

排错:

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

    1、源端监听正常,数据库正常
    2、目标端TNS配置无误,TNSPING可通,但是sqlplus 命令不通,说明还是有问题
    3、DB_LINK定义正确...
    4、网络ping正常
    5、使用不是SCANIP的IP(VIP或者主机IP)配置TNS连接DB_LINK

定位:http://www.cndba.cn/Marvinn/article/2695http://www.cndba.cn/Marvinn/article/2695

    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)
  )
 )
)

至此该问题解决完毕……………..

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

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Marvinn

Marvinn

关注

路漫漫其修远兮、吾将上下而求索

  • 99
    原创
  • 0
    翻译
  • 2
    转载
  • 36
    评论
  • 访问:458454次
  • 积分:449
  • 等级:中级会员
  • 排名:第12名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ