一般装好一个数据库之后会默认有一个监听器,名字叫"LISTENER”,配置文件会有oracle_home/network/listener.ora里,如果是windows还会创建一个系统服务,名叫"OracleOraDb10g_home1TNSListener"。
监听器可以用lsnrctl这个程序来控制,这个程序在oracle_home/bin下面。基本使用方法是:
status 监听器名称:查看这个监听器的运行情况
stop 监听器名称:关闭这个监听器
start 监听器名称:打开这个监听器
如果命令后面没有带监听器名称表示监听器是默认的LISTENER。
可以通过NETCA(也就是开始菜单上的net configuration assistant)来配置监听器(添加、修改、删除),也可以用net manager(也是在开始菜单上)来配置。
多监听器配置
可以对一个实例配置多个监听器,如果一个监听器失效了,连接其他的监听器一样可以访问这个实例,这些监听器可以位于不同的物理主机上;步骤如下
先通过netca或net manager添加一个新的监听器(如名称为listener1,指向一个不同的端口(如1522),并保存,这样就可以在listener.ora里看到
LISTENER1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 这里是IP地址或域名或机器名)(PORT = 1522))
)
注意:但是这样还不够
还要在listener.ora里增加
SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = 实例名)
(ORACLE_HOME = oracle_home)
(GLOBAL_DBNAME = 全局数据库名)
)
)
好,加好了以后,就可以在lsnrctl里用start listener1来启动这个新添加的监听器了,如果是在windows下,会在系统服务里添加一个新服务:OracleOraDb10g_home1TNSListenerLISTENER1。
监听器加好后,可以配置客户端的tnsname.ora来访问这个新的监听器,如
ORCLME_S =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = unique-mbp)(PORT = 1522))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclme)
)
)
还可以在一个tnsname上设置多个address,指向多个监听器,这样通过这个tnsname访问实例时就会在监听器级有冗余了,如
ORCLME =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = unique-mbp)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = unique-mbp)(PORT = 1522))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclme)
)
)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/385741/viewspace-541523/ ,如需转载,请注明出处,否则将追究法律责任。