当前位置:首页 > 开发 > 数据库 > 正文

Oracle如何配置多个监听器

发表于: 2014-05-01   作者:czmmiao   来源:转载   浏览次数:
摘要: 何为一个instance配置多个监听,并且实现Client Load Balancing和Client Load Balancing。打开NETCA,配置两个监听器。LISENTER,默认监听器,一路next,就配置完毕, 监听端口1521。配置LISENTER2,注意监听端口改为1522,其它和LISENTER一致。这个时候,LISENTER已经可以使用了。但是LISENTER2还是不行,因为O

何为一个instance配置多个监听,并且实现Client Load Balancing和Client Load Balancing。
打开NETCA,配置两个监听器。
LISENTER,默认监听器,一路next,就配置完毕, 监听端口1521。
配置LISENTER2,注意监听端口改为1522,其它和LISENTER一致。
这个时候,LISENTER已经可以使用了。
但是LISENTER2还是不行,因为Oracle只会为第一个默认的监听注册服务。
在$ORACLE_HOME/NETWORK/ADMIN,编辑lisenter.ora文件,如下:
红色字体为需要增加的内容
SID_LIST_LISTENER2 =
(SID_LIST =
  (SID_DESC =
    (SID_NAME = WWJ)
    (ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
    (GLOBAL_DBNAME = WWJ)
  )
)
LISTENER2 =
(DESCRIPTION_LIST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = tcp)(HOST = valen)(PORT = 1522))
  )
)
SID_LIST_LISTENER =
(SID_LIST =
  (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
    (PROGRAM = extproc)
  )
)
LISTENER =
(DESCRIPTION_LIST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = tcp)(HOST = valen)(PORT = 1521))
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
  )
)
需要解释的是,SID_LIST_<lisenter name> 这里的<lisenter name>要和LISTENER名称一致。
SID_DESC则注册要提供服务的数据库实例名。这样LISTENER2 才能够提供服务。
否则会报TNS-错误。
测试过程,配置local tns name如下:
1522 =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 1522))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = wwj)
  )
)
1521 =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = wwj)
  )
)
local =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 1521))
    (ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 1522))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = wwj)
  )
)
1522和1521分别对应两个监听器,local稍后再解释:
测试:
sql> conn [url=mailto:wwj/wwj@1521]wwj/wwj@1521
已连接。
sql> conn [url=mailto:wwj/wwj@1522]wwj/wwj@1522
已连接。
OK,再看local,
(ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 1522))
这里的意思是,该命名对应了两个监听端口,如果一个Crash,会立刻切换到另外一个。
并且如果多个连接,会随机的分配监听。
测试
sql> conn [url=mailto:wwj/wwj@local]wwj/wwj@local
已连接。
STOP LISENTER,再次连接,这个时候,连接比第一次慢了1秒钟左右
sql> conn [url=mailto:wwj/wwj@local]wwj/wwj@local
已连接。
成功,这时连接上了LISTENER2
关于Oracle网络服务的资料,在OCP教材的第四章Oracle Net Services有很清晰的说明。

参考至:http://blog.chinaunix.net/uid-197582-id-461007.html

如有错误,欢迎指正

邮箱:czmcj@163.com

Oracle如何配置多个监听器

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
在安装Oracle时,系统已经自动创建了一个名为LISTENER的监听器(使用1521端口),我们也可以再为服
在安装Oracle时,系统已经自动创建了一个名为LISTENER的监听器(使用1521端口),我们也可以再为服
1.1.查看数据库连接配置文件tnsnames.ora 文件路径: E:\database\oracle\product\11.1.0\db_1\NETWO
如何oracle sql developer 支持多个窗体,多个tab,同时查看多个数据表, 在 工具>首选项>数据
数据库Oracle 10.2.0.4 for linux x86 64bit,正常运行430天。在今天早上10点钟,Oracle监听器进程
安装了ORACLE的SQL Developer 4.0.3.16,但是连接数据库时,如果选择连接类型为“TNS”,无法获取网
近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server)。本文现对监听
1、在开始菜单-->运行-->lsnrctl.exe-->start即可;如下图: 按照图形的说明操作即可; 如
Oracle监听器的各种问题总结: 1)系统断电异常重启后导致Oracle的监听无法正常启动,此时可以通过
最近换了个win7的系统,装了系统后。马上就装了oralce,刚装上的时候一切正常。都能正常访问,后面
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号