免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4692 | 回复: 8
打印 上一主题 下一主题

针对 rac的客户端连接不稳定 怎么办 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-14 14:43 |只看该作者 |倒序浏览
oracle 是在172.17的网段 两台机器做了RAC

客户端 在172.16的网

进行连接非常不稳定 分别连接两个实例正常
但是一连RAC 指向的总的就有问题 不稳定

tnsnames.ora 如下:
0 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db2_vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = db1_vip)(PORT = 1521))
    (LOAD_BALANCE = yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = 0)
      (FAILOVER_MODE =
        (TYPE = SELECT)
        (METHOD = BASIC)
        (RETRIES = 180)
        (DELAY = 5)
      )
    )
  )

DMSS =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db2_vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = db1_vip)(PORT = 1521))
    (LOAD_BALANCE = yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dmss)
      (FAILOVER_MODE =
        (TYPE = SELECT)
        (METHOD = BASIC)
        (RETRIES = 180)
        (DELAY = 5)
      )
    )
  )

LISTENERS_0 =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db2_vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = db1_vip)(PORT = 1521))
  )

2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db1_vip)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = 0
      (INSTANCE_NAME = 2)
    )
  )

1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db2_vip)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = 0)
      (INSTANCE_NAME = 1)
    )
  )



是哪里还需要设置吗?
请帮忙

论坛徽章:
0
2 [报告]
发表于 2006-10-14 23:43 |只看该作者
是不是报ORA-12545的错误?

论坛徽章:
0
3 [报告]
发表于 2006-10-16 11:04 |只看该作者
恩 是的

论坛徽章:
0
4 [报告]
发表于 2006-10-16 13:34 |只看该作者
在客户机上能否ping通db1_vip和db2_vip
如果ping不通, 在winnt\system32\drivers\etc\hosts中添加这两个主机名的记录。如
db2_vip 1.2.3.4
db1_vip 3.4.5.6

论坛徽章:
0
5 [报告]
发表于 2006-10-16 14:20 |只看该作者
已经添加了, 后来又添加了 主机名
如:机器有两个网卡 A机为 一个是IP 0.1  另个IP 0.2
                            B机为  一个是IP 0.3  另个IP 0.4
0.1  A
0.3 B   
A 与 B分别为主机名

添加主机名后 ,才正常 为什么呢?
在tnsname.ora 中并没有出现要用到主机名解析的那快呀

论坛徽章:
0
6 [报告]
发表于 2006-10-16 15:11 |只看该作者
原帖由 eld 于 2006-10-16 14:20 发表
已经添加了, 后来又添加了 主机名
如:机器有两个网卡 A机为 一个是IP 0.1  另个IP 0.2
                            B机为  一个是IP 0.3  另个IP 0.4
0.1  A
0.3 B   
A 与 B分别为主机名

添加主机名 ...


rac中如果客户端试图连接的实例负载比较重,连接会被转向Remote_listeners中指定的某个地址, 而这个地址,比如你的例子

  1. LISTENERS_0 =
  2.   (ADDRESS_LIST =
  3.     (ADDRESS = (PROTOCOL = TCP)(HOST = db2_vip)(PORT = 1521))
  4.     (ADDRESS = (PROTOCOL = TCP)(HOST = db1_vip)(PORT = 1521))
  5.   )
复制代码

中的

  1. (ADDRESS = (PROTOCOL = TCP)(HOST = db1_vip)(PORT = 1521))
复制代码

是用主机名称来指定重定向到的实例所在的机器。
客户机的oracle client试图将主机名db1_vip转换成ip地址时出错。
向客户机的hosts文件或dns中添加记录可解决这一问题。

论坛徽章:
0
7 [报告]
发表于 2006-10-16 17:01 |只看该作者
谢谢!
但是我还是不明白的是  
看了下 A机为 一个是IP 0.1  另个IP 0.2  是一个网卡的两个IP
但是为什么要这么配呢?

论坛徽章:
0
8 [报告]
发表于 2006-10-16 22:08 |只看该作者
两个ip一个是真实ip, 一个是vip
如果rac的一个节点down掉, vip会切换到另外一台机器上

客户端如果使用真实ip连接到rac的一个节点, 这个节点down掉后后, 客户端需要等待连接超时, 才会去连接到rac中的其他节点. 这个过程通常需要几分钟

客户端如果使用vip连接到rac的一个节点, 这个节点down掉后后, vip漂移到其他服务器, 客户端发送数据到该vip时, 会收到一个错误信息, 然后客户端会试图去连接到rac中的其他节点. 这个过程只需要几十秒.

论坛徽章:
0
9 [报告]
发表于 2006-10-17 09:45 |只看该作者
真的非常谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP