Oracle 通过监听器来监听客户端的请求,并为客户端分配Server Process,所以监听器是远程登录Oracle的必要之一,下面简介如何配置监听。
一、监听配置文件(listerner.ora)
利用netmgr生成listener.ora
1. 以oracle用户身份输入netmgr命令
![](/attachment/201508/10/30376847_1439219530jnN0.jpg)
2.创建LISTENER
选择协议,服务器地址,端口号
![](/attachment/201508/10/30376847_1439220161ZO00.jpg)
添加被监听的数据库,填入全局数据库名,ORACLE_HOME,实例名
![](/attachment/201508/10/30376847_14392201450jFf.png)
3.保存后退出(file--》save network config),查看listener.ora,发现已经生成了配置信息
vi /$ORACLE_HOME/network/admin/listener.ora
![](/attachment/201508/10/30376847_1439221081b2d6.png)
二、Server name(tnsname.ora)
Oracle的远程登录命令为sqlplus scott/tiger@192.168.1.100/prod,后面的服务器地址和实例名使登录过于繁琐,所以oracle引入了Server name。
生成tnsname.ora
1.以oracle身份输入netmgr,创建Service name,此处输入的net service name在登录时可以代替服务器地址和实例名。
![](/attachment/201508/10/30376847_1439221485vCAJ.png)
选择协议
![](/attachment/201508/10/30376847_1439221602kCl4.png)
服务器地址和端口号
![](/attachment/201508/10/30376847_143922168397Na.png)
此处为全局数据库名
![](/attachment/201508/10/30376847_14392217565t95.png)
2.保存退出,查看tnsname.ora文件
vi /$ORACLE_HOME/network/admin/tnsname.ora
![](/attachment/201508/10/30376847_1439221956fZxT.png)
三、监听注册
上面已经建立了监听,我们现在进行监听的注册。
监听注册分为静态注册和动态注册
1.静态注册
如果在listener.ora中指定了实例名则为静态注册(存在SID_LIST_<LISTENER_NAME>=)
在启动监听后(lsnrctl start),会出现如下结果,因为静态注册是查看配置文件中的记录,所以并不会检测实例状态。
![](/attachment/201508/11/30376847_1439222440DEEV.png)
2.动态注册
在listener.ora中没有指定实例名则为动态注册
在启动监听后(lsnrctl start),会出现如下结果,因为动态注册是由pmon进程来完成注册,会检测当前实例状态。
![](/attachment/201508/11/30376847_1439222683RFO5.png)
四、注意
1、由于动态注册是由pmon完成,所以数据库没有启动时是不可以使用的,只能使用静态注册
2、动态注册如果想使用不同的端口号要在设置数据库参数local_listener,alter system set local_listener='ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1522)';
3、由于pmon每45秒进行一次动态注册,所以刚执行动态注册时,会比较慢,可以通过alter system register来进行手动注册
4、lsnrctl start /status/stop命令默认使用的时LISTENER监听,如果添加了新的监听,需要在命令后加上监听名,lsnrctl start listener2
一、监听配置文件(listerner.ora)
利用netmgr生成listener.ora
1. 以oracle用户身份输入netmgr命令
![](/attachment/201508/10/30376847_1439219530jnN0.jpg)
2.创建LISTENER
选择协议,服务器地址,端口号
![](/attachment/201508/10/30376847_1439220161ZO00.jpg)
添加被监听的数据库,填入全局数据库名,ORACLE_HOME,实例名
![](/attachment/201508/10/30376847_14392201450jFf.png)
3.保存后退出(file--》save network config),查看listener.ora,发现已经生成了配置信息
vi /$ORACLE_HOME/network/admin/listener.ora
![](/attachment/201508/10/30376847_1439221081b2d6.png)
二、Server name(tnsname.ora)
Oracle的远程登录命令为sqlplus scott/tiger@192.168.1.100/prod,后面的服务器地址和实例名使登录过于繁琐,所以oracle引入了Server name。
生成tnsname.ora
1.以oracle身份输入netmgr,创建Service name,此处输入的net service name在登录时可以代替服务器地址和实例名。
![](/attachment/201508/10/30376847_1439221485vCAJ.png)
选择协议
![](/attachment/201508/10/30376847_1439221602kCl4.png)
服务器地址和端口号
![](/attachment/201508/10/30376847_143922168397Na.png)
此处为全局数据库名
![](/attachment/201508/10/30376847_14392217565t95.png)
2.保存退出,查看tnsname.ora文件
vi /$ORACLE_HOME/network/admin/tnsname.ora
![](/attachment/201508/10/30376847_1439221956fZxT.png)
三、监听注册
上面已经建立了监听,我们现在进行监听的注册。
监听注册分为静态注册和动态注册
1.静态注册
如果在listener.ora中指定了实例名则为静态注册(存在SID_LIST_<LISTENER_NAME>=)
在启动监听后(lsnrctl start),会出现如下结果,因为静态注册是查看配置文件中的记录,所以并不会检测实例状态。
![](/attachment/201508/11/30376847_1439222440DEEV.png)
2.动态注册
在listener.ora中没有指定实例名则为动态注册
在启动监听后(lsnrctl start),会出现如下结果,因为动态注册是由pmon进程来完成注册,会检测当前实例状态。
![](/attachment/201508/11/30376847_1439222683RFO5.png)
四、注意
1、由于动态注册是由pmon完成,所以数据库没有启动时是不可以使用的,只能使用静态注册
2、动态注册如果想使用不同的端口号要在设置数据库参数local_listener,alter system set local_listener='ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1522)';
3、由于pmon每45秒进行一次动态注册,所以刚执行动态注册时,会比较慢,可以通过alter system register来进行手动注册
4、lsnrctl start /status/stop命令默认使用的时LISTENER监听,如果添加了新的监听,需要在命令后加上监听名,lsnrctl start listener2
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30376847/viewspace-1767695/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30376847/viewspace-1767695/