Oracle RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)

不论是单实例还是RAC,对于非缺省端口下(1521)的监听器,pmon进程不会将service/instance注册到监听器,即不会实现动态注册。与单实例相同,RAC非缺省端口的监听器也是通过设置参数local_listener来达到目的。除此之外,还可以对实例进行远程注册,以达到负载均衡的目的。这是通过一个参数remote_listener来实现。

一、创建非缺省的监听器
使用netca新建一个非缺省的listener,当然也可以直接修改各节点上的listener.ora
Oracle@bo2dbp:~> export DISPLAY=192.168.7.133:0.0
oracle@bo2dbp:~> netca
--选择cluster configuration
--选择所有的节点
--选择listener configuration
--选择add
--设定一个新的监听器的名字,假定为LISTENER_NEW
--选择tcp
--设定非缺省的端口号,此处设定为1314
--选择no,点击next等待完成
--如之前已经存在缺省的监听器,此时出现提示选择启动那个监听,选择刚建的LISTENER_NEW
--next,提示完成, finish

二、缺省监听器与非缺省监听器对照

  1. oracle@bo2dbp:~> ps -ef | grep lsnr 
  2. oracle   21097     1  0 17:40 ?        00:00:00 /u01/oracle/db/bin/tnslsnr LISTENER_BO2DBP -inherit 
  3. oracle   26228     1  0 17:58 ?        00:00:00 /u01/oracle/db/bin/tnslsnr LISTENER_NEW_BO2DBP -inherit 
  4. oracle   28842 19468  0 17:58 pts/1    00:00:00 grep lsnr 
  5. 此时可以看到有两个监听器,一个是原来缺省的,一个是新增加的,注意监听器的命名,RAC环境下是监听器的名字加上hostname 
  6. 下面的listener.ora的内容已经包含了两个监听器,一个是缺省的,一个是非缺省的。 
  7.  
  8. 相应地,listener.ora中也多出了刚刚创建的非缺省监听器 
  9. oracle@bo2dbp:~> more $ORACLE_HOME/network/admin/listener.ora 
  10. # listener.ora.bo2dbp Network Configuration File: /u01/oracle/db/network/admin/listener.ora.bo2dbp  
  11. # Generated by Oracle configuration tools.  
  12.  
  13. LISTENER_NEW_BO2DBP = 
  14.   (DESCRIPTION_LIST = 
  15.     (DESCRIPTION = 
  16.       (ADDRESS = (PROTOCOL = TCP)(HOST = bo2dbp-vip.2gotrade.com)(PORT = 1314)(IP = FIRST)) 
  17.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.51)(PORT = 1314)(IP = FIRST)) 
  18.     ) 
  19.   ) 
  20.  
  21. LISTENER_BO2DBP = 
  22.   (DESCRIPTION_LIST = 
  23.     (DESCRIPTION = 
  24.       (ADDRESS = (PROTOCOL = TCP)(HOST = bo2dbp-vip.2gotrade.com)(PORT = 1521)(IP = FIRST)) 
  25.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.51)(PORT = 1521)(IP = FIRST)) 
  26.     ) 
  27.   ) 
  28.  
  29. SID_LIST_LISTENER_NEW_BO2DBP = 
  30.   (SID_LIST = 
  31.     (SID_DESC = 
  32.       (SID_NAME = PLSExtProc) 
  33.       (ORACLE_HOME = /u01/oracle/db) 
  34.       (PROGRAM = extproc) 
  35.     ) 
  36.   ) 
  37.  
  38. SID_LIST_LISTENER_BO2DBP = 
  39.   (SID_LIST = 
  40.     (SID_DESC = 
  41.       (SID_NAME = PLSExtProc) 
  42.       (ORACLE_HOME = /u01/oracle/db) 
  43.       (PROGRAM = extproc) 
  44.     ) 
  45.   ) 
  46.  
  47. #查看监听器的状态  
  48. oracle@bo2dbp:~> ./crs_stat.sh 
  49.  Resource name                                Target     State               
  50. --------------                                ------     -----               
  51. ora.GOBO4.GOBO4A.inst                         ONLINE     ONLINE on bo2dbp   
  52. ora.GOBO4.GOBO4B.inst                         ONLINE     ONLINE on bo2dbs   
  53. ora.GOBO4.db                                  ONLINE     ONLINE on bo2dbp   
  54. ora.bo2dbp.ASM1.asm                           ONLINE     ONLINE on bo2dbp   
  55. ora.bo2dbp.LISTENER_BO2DBP.lsnr               ONLINE     ONLINE on bo2dbp   
  56. ora.bo2dbp.LISTENER_NEW_BO2DBP.lsnr           ONLINE     ONLINE on bo2dbp   
  57. ora.bo2dbp.gsd                                ONLINE     ONLINE on bo2dbp   
  58. ora.bo2dbp.ons                                ONLINE     ONLINE on bo2dbp   
  59. ora.bo2dbp.vip                                ONLINE     ONLINE on bo2dbp   
  60. ora.bo2dbs.ASM2.asm                           ONLINE     ONLINE on bo2dbs   
  61. ora.bo2dbs.LISTENER_BO2DBS.lsnr               ONLINE     ONLINE on bo2dbs   
  62. ora.bo2dbs.LISTENER_NEW_BO2DBS.lsnr           ONLINE     ONLINE on bo2dbs   
  63. ora.bo2dbs.gsd                                ONLINE     ONLINE on bo2dbs   
  64. ora.bo2dbs.ons                                ONLINE     ONLINE on bo2dbs   
  65. ora.bo2dbs.vip                                ONLINE     ONLINE on bo2dbs   
  66. ora.ora10g.db                                 ONLINE     ONLINE on bo2dbp   
  67. ora.ora10g.ora10g1.inst                       ONLINE     ONLINE on bo2dbp   
  68. ora.ora10g.ora10g2.inst                       ONLINE     ONLINE on bo2dbs   
  69.  
  70. #比较缺省监听器与非缺省监听器的状态  
  71. oracle@bo2dbp:~> lsnrctl 
  72. LSNRCTL> set current_listener LISTENER_NEW_BO2DBP 
  73. LSNRCTL> status              #端口号为非缺省的情形下仅存在Service "PLSExtProc",这是因为没有动态注册的原因  
  74. Services Summary... 
  75. Service "PLSExtProc" has 1 instance(s). 
  76.   Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... 
  77. The command completed successfully 
  78.  
  79. LSNRCTL> set current_listener LISTENER_BO2DBP 
  80. Current Listener is LISTENER_BO2DBP 
  81. LSNRCTL> status 
  82. ......... 
  83. Listening Endpoints Summary... 
  84.   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.7.61)(PORT=1521))) 
  85.   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.7.51)(PORT=1521))) 
  86. Services Summary... 
  87. ......... 
  88. Service "ora10g" has 2 instance(s). 
  89.   Instance "ora10g1", status READY, has 2 handler(s) for this service... 
  90.   Instance "ora10g2", status READY, has 1 handler(s) for this service... 
  91. ......... 
  92. The command completed successfully 
  93.  
  94. oracle@bo2dbp:~> lsnrctl status  #查看缺省监听器的状态(即断口号为1521)  
  95. ....... 
  96.   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.7.61)(PORT=1521))) 
  97.   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.7.51)(PORT=1521))) 
  98. Services Summary... 
  99. ....... 
  100. Service "ora10g" has 2 instance(s). 
  101.   Instance "ora10g1", status READY, has 2 handler(s) for this service... 
  102.   Instance "ora10g2", status READY, has 1 handler(s) for this service... 
  103. ....... 
  104. The command completed successfully 
  105.  
  106. #查看此时local_listener与remote_listener参数  
  107. #Author: Robinson Cheng   
  108.  
  109. #Blog : http://www.linuxidc.com
  110.  
  111. SQL> show parameter instance_name 
  112.  
  113. NAME                                 TYPE        VALUE 
  114. ------------------------------------ ----------- ------------------------------ 
  115. instance_name                        string      ora10g1 
  116. SQL> show parameter listener 
  117.  
  118. NAME                                 TYPE        VALUE 
  119. ------------------------------------ ----------- ------------------------------ 
  120. local_listener                       string 
  121. remote_listener                      string      LISTENERS_ORA10G 
  122.  
  123. 结论,与单实例相同,如果未设定非缺省的listener,则使用listener 与LISTENER_BO2DBP查看到相同的结果 
  124. 也就是说lsnrctl status [listener_nam]查看的本身就是缺省端口监听器的信息 
  125. 对于非缺省端口的监听器,未设置local_listener时不会有数据库实例注册 
  126.  
  127. #关闭缺省的监听器  
  128. SQL> ho srvctl stop listener -n bo2dbp -l LISTENER_BO2DBP 
  129.  
  130. SQL> ho srvctl stop listener -n bo2dbs -l LISTENER_BO2DBS 
  131.  
  132. SQL> ho ./crs_stat.sh 
  133.  Resource name                                Target     State               
  134. --------------                                ------     -----               
  135. ora.GOBO4.GOBO4A.inst                         OFFLINE    OFFLINE             
  136. ora.GOBO4.GOBO4B.inst                         OFFLINE    OFFLINE             
  137. ora.GOBO4.db                                  OFFLINE    OFFLINE             
  138. ora.bo2dbp.ASM1.asm                           ONLINE     ONLINE on bo2dbp   
  139. ora.bo2dbp.LISTENER_BO2DBP.lsnr               OFFLINE    OFFLINE             
  140. ora.bo2dbp.LISTENER_NEW_BO2DBP.lsnr           ONLINE     ONLINE on bo2dbp   
  141. ora.bo2dbp.gsd                                ONLINE     ONLINE on bo2dbp   
  142. ora.bo2dbp.ons                                ONLINE     ONLINE on bo2dbp   
  143. ora.bo2dbp.vip                                ONLINE     ONLINE on bo2dbp   
  144. ora.bo2dbs.ASM2.asm                           ONLINE     ONLINE on bo2dbs   
  145. ora.bo2dbs.LISTENER_BO2DBS.lsnr               OFFLINE    OFFLINE             
  146. ora.bo2dbs.LISTENER_NEW_BO2DBS.lsnr           ONLINE     ONLINE on bo2dbs   
  147. ora.bo2dbs.gsd                                ONLINE     ONLINE on bo2dbs   
  148. ora.bo2dbs.ons                                ONLINE     ONLINE on bo2dbs   
  149. ora.bo2dbs.vip                                ONLINE     ONLINE on bo2dbs   
  150. ora.ora10g.db                                 ONLINE     ONLINE on bo2dbp   
  151. ora.ora10g.ora10g1.inst                       ONLINE     ONLINE on bo2dbp   
  152. ora.ora10g.ora10g2.inst                       ONLINE     ONLINE on bo2dbs   

相关推荐