参考官方文档Net Services Reference的7 Oracle Net Listener Parameters (listener.ora)
1 监听概念
oracle监听,是个服务器端进程,负责监听客户端发来的请求
监听器可以不必驻留在数据库主机上,即可以把实例注册到远程主机上的监听
监听是oracle自带的软件或者说组件
本地连接可以不用监听,但是远程连接必须要
oracle监听收到user process发出的request后,派生出server process来提供服务,server进程根据数据库的配置有2种模式:专有模式和共享模式
dbca建库后一般会有默认监听,不用再配置,监听的服务端口默认1521
一般的库一个监听就够了,但是并发量太大的话可能需要配置多个监听,非默认监听的端口号大于1024即可,不同监听之间服务名和端口号不能一样
监听如何区别不同的库呢,所以需要把实例进行服务注册,注册到listen中,
注册就是将主机上跑的实例添加到listen里,让listen知道主机上有哪些实例
2 配置方法2种:动态注册和静态注册
2.1 动态注册
服务注册有2种,一种是动态注册,是通过pmon进程主动的自动的把实例注册到listen中
监听和实例的启动顺序,当监听先启动,没问题,如果监听后启动,那么可以手工alter system register注册下,或者不用管,pmon会隔一段时间就去注册下
一般默认监听是动态注册
不需要listener.ora文件
服务状态中有status READY(库在mount或者open状态)字样
pmon给监听提供实例名、服务名、服务处理程序的类型和地址
注册的服务名叫 db_name.db_domain,XDBdb_name.db_domain
如果要pmon注册到非默认监听,就要配置local_listener参数了
配置监听可以通过netca图形配置,也可以命令配置
默认监听的名称LISTENER,配置如上,实际上没有这个listener.ora,默认listen也是可以正常运行的
那么下面增加一个在1522端口的非默认动态监听,名称叫listener2