Oracle DBA之手动注册监听(listener) -- alter system set local_listener="T02";

记录下刚刚做的一个为一个数据库(t02)配置多个监听(listener)的实验,过程有点小曲折。

 

(1)新增两个测试的监听,listener.ora的配置内容(可纯手动编辑该文件或使用netca)如下:

(LISTENER为系统原有;L1、L2为测试用新增的监听)


(2)配置tnsnames.ora,使数据库(t02)可同时使用以上3个监听:


(3)检查及测试,发现问题:

检查的时候发现除了默认的LISTENER监听外,L1和L2始终不能注册服务:


停止了默认的LISTENER监听后,使用tns进行连接测试的时候报错(ORA-12514):


(4)分析问题:

一阵google之后发现,如果默认端口不是1521,则需要设置LOCAL_LISTENER来手动指定监听别名:

When configuring the listener to listen on TCP/IP, you should enter the default port of 1521. If you do not, you must configure the LOCAL_LISTENER parameter in the intialization parameter file and resolve the listener name through a naming method.

http://download.oracle.com/docs/cd/B13789_01/network.101/b10775/listenercfg.htm

(5)解决问题(此处的T02为step 2的tnsnames.ora里面的T02):


(6)验证,再测试:

验证,发现L1、L2已能正常注册服务:


再测试,发现scott用户能够正常登录:


(7)总结

当监听的端口是默认的1521时,PMON会动态注册该监听(listener);

当监听的端口不是默认的1521时,需要使用alter system set local_listener="T02";来手动注册监听。

 

Ref: http://warehouse.itpub.net/post/777/472788

你可能感兴趣的:(listener)