Oracle10g RAC - 客户端,Server端tnsnames.ora及监听设置

Oracle 10g  RAC
Linux AS 5.3




SQL> show parameter listener
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string      LOCAL_MXDELL
remote_listener                   string      LISTENERS_MXDELL




3 个 Server中的tnsnames.ora文件:  

LISTENERS_MXDELL =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = mxvip01)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = mxvip02)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = mxvip03)(PORT = 1521))   
  )



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



Ap程序 客户端连接 (181,182对应1,2节点)  
MXRAC =
  (DESCRIPTION =
    (FAILOVER=ON)
    (LOAD_BALANCE = OFF)
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.13.67.181)(PORT = 1521))  
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.13.67.182)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = mxdell)
      (FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC))
    )
  )



Web Report客户端连接(只是连接节点3,  173是对应节点3的实体IP) :


MX_RAC3 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.13.67.173)(PORT = 1521))   
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = mxdell)
      (INSTANCE_NAME = mxdell3)
    )
  )




这种情况下AP程序客户端也会连接到节点3 上, Web访问导致负荷很高,影响到ap的运行, 虽然AP客户端只是设置了1,2 节点的vip ,  可能由于
Server端的 remote_listener  = LISTENERS_MXDELL  中包含了节点3的vip,   所以ap 还是会连接到第 3 个节点 。



问题 :
想彻底分开AP程序及WEB程序, 让AP 访问前两个节点,还能负载均衡,并不能连接到节点3 , 让Web单独访问节点3 ,不影响AP的运行。  



我的做法是 :

将 3 个DB Server中的tnsnames.ora文件修改为 (注释掉节点3):  

LISTENERS_MXDELL =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = mxvip01)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = mxvip03)(PORT = 1521))
    # (ADDRESS = (PROTOCOL = TCP)(HOST = mxvip03)(PORT = 1521))   
  )


由于不能关闭数据库, 而remote_listener 又是spfile中的参数, 所以想知道这样修改后是否马上生效了,是否Ap界面程序就连接不到节点3了 ?  
还是说需要  alter system set  remote_listener = LISTENERS_MXDELL ;  让参数refresh一下 ?  


衍生一个问题 : remote_listener = LISTENERS_MXDELL , 而 LISTENERS_MXDELL 是在tnsnames.ora 中设置的, 那么开启数据库的
时候, 读入内存的应该是  LISTENERS_MXDELL  这个字符, 而不会是 LISTENERS_MXDELL 在tnsnames.ora 中对应的ip,port等实质的内容 ?

[ 本帖最后由 tolywang 于 2009-12-16 12:01 编辑 ]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-622662/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-622662/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值