千家信息网

【LISTENER】一个数据库配置两个监听端口号

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,测试环境:windows2008R2 Oracle11.2.0.1-oracle11.2.0.4一个监听端口发现压力太大,或者想测试下两个监听端口效果如何,可以使用一下方法。第一种方式:listene
千家信息网最后更新 2024年11月11日【LISTENER】一个数据库配置两个监听端口号
测试环境:windows2008R2 Oracle11.2.0.1-oracle11.2.0.4

一个监听端口发现压力太大,或者想测试下两个监听端口效果如何,可以使用一下方法。

第一种方式:

listener.ora 配置如下:

点击(此处)折叠或打开

  1. listener.ora
  2. # listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
  3. # Generated by Oracle configuration tools.

  4. LISTENER1 =
  5. (DESCRIPTION =
  6. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.16)(PORT = 1522))
  7. )

  8. SID_LIST_LISTENER =
  9. (SID_LIST =
  10. (SID_DESC =
  11. (SID_NAME = CLRExtProc)
  12. (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)
  13. (PROGRAM = extproc)
  14. (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
  15. )
  16. )

  17. ADR_BASE_LISTENER1 = C:\app\Administrator\product\11.2.0\dbhome_1\log

  18. LISTENER =
  19. (DESCRIPTION_LIST =
  20. (DESCRIPTION =
  21. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.16)(PORT = 1521))
  22. )
  23. (DESCRIPTION =
  24. (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
  25. )
  26. )

  27. ADR_BASE_LISTENER = C:\app\Administrator

两个监听器,那么问题来了,都是动态注册,怎么都生效呢?

此时,我们需要配置下数据库服务器端tnsnames.ora 这个配置文件,如下

点击(此处)折叠或打开

  1. ALL_LISTENER =
  2. (DESCRIPTION =
  3. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.16)(PORT = 1521))
  4. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.16)(PORT = 1522))
  5. (CONNECT_DATA =
  6. (SERVER = DEDICATED)
  7. (SERVICE_NAME = orcl)
  8. )
  9. )

数据库中再执行以下操作:


点击(此处)折叠或打开

  1. SQL> alter system set local_listener=all_listener;

  2. 系统已更改。

  3. SQL> alter system register;

  4. 系统已更改。

  5. SQL>

两个监听器,测试连接数据库成功:如下所示:

点击(此处)折叠或打开

  1. SQL> conn test/test@orcl
  2. 已连接。
  3. SQL> conn test/test@orcl1
  4. 已连接。
  5. SQL>


  6. Microsoft Windows [版本 6.1.7600]
  7. 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

  8. C:\Users\Administrator>lsnrctl stat

  9. LSNRCTL for 64-bit Windows: Version 11.2.0.4.0 - Production on 19-7月 -2017 12:
  10. 7:53

  11. Copyright (c) 1991, 2013, Oracle. All rights reserved.

  12. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.8.16)(PORT=1521)))
  13. LISTENER 的 STATUS
  14. ------------------------
  15. 别名 LISTENER
  16. 版本 TNSLSNR for 64-bit Windows: Version 11.2.0.4.0 - Prod
  17. ction
  18. 启动日期 19-7月 -2017 12:04:02
  19. 正常运行时间 0 天 0 小时 13 分 52 秒
  20. 跟踪级别 off
  21. 安全性 ON: Local OS Authentication
  22. SNMP OFF
  23. 监听程序参数文件 C:\app\Administrator\product\11.2.0\dbhome_1\network\
  24. dmin\listener.ora
  25. 监听程序日志文件 C:\app\Administrator\diag\tnslsnr\wintest\listener\al
  26. rt\log.xml
  27. 监听端点概要...
  28. (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.8.16)(PORT=1521)))
  29. (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  30. 服务摘要..
  31. 服务 "CLRExtProc" 包含 1 个实例。
  32. 实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
  33. 服务 "orcl" 包含 1 个实例。
  34. 实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
  35. 服务 "orclXDB" 包含 1 个实例。
  36. 实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
  37. 命令执行成功

  38. C:\Users\Administrator>lsnrctl stat listener1

  39. LSNRCTL for 64-bit Windows: Version 11.2.0.4.0 - Production on 19-7月 -2017 12:
  40. 7:57

  41. Copyright (c) 1991, 2013, Oracle. All rights reserved.

  42. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.8.16)(PORT=1522)))
  43. LISTENER 的 STATUS
  44. ------------------------
  45. 别名 listener1
  46. 版本 TNSLSNR for 64-bit Windows: Version 11.2.0.4.0 - Prod
  47. ction
  48. 启动日期 19-7月 -2017 12:11:58
  49. 正常运行时间 0 天 0 小时 6 分 1 秒
  50. 跟踪级别 off
  51. 安全性 ON: Local OS Authentication
  52. SNMP OFF
  53. 监听程序参数文件 C:\app\Administrator\product\11.2.0\dbhome_1\network\
  54. dmin\listener.ora
  55. 监听程序日志文件 C:\app\Administrator\product\11.2.0\dbhome_1\log\diag
  56. tnslsnr\wintest\listener1\alert\log.xml
  57. 监听端点概要...
  58. (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.8.16)(PORT=1522)))
  59. 服务摘要..
  60. 服务 "orcl" 包含 1 个实例。
  61. 实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
  62. 服务 "orclXDB" 包含 1 个实例。
  63. 实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
  64. 命令执行成功

  65. C:\Users\Administrator>


还有一种方式:如下

点击(此处)折叠或打开

  1. LISTENER =
  2. (DESCRIPTION_LIST =
  3. (DESCRIPTION =
  4. (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-J351NF8VN9D)(PORT = 1521))
  5. (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-J351NF8VN9D)(PORT = 1522))
  6. (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
  7. )
  8. )
注意,第一种方式,原监听不用操作,而上述中方式,需要重启监听。

重启后的效果:

点击(此处)折叠或打开

  1. C:\Users\Administrator>lsnrctl status

  2. LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 20-7月 -2017 22:5
  3. 3:38

  4. Copyright (c) 1991, 2010, Oracle. All rights reserved.

  5. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=WIN-J351NF8VN9D)(PORT=1521)
  6. ))
  7. LISTENER 的 STATUS
  8. ------------------------
  9. 别名 LISTENER
  10. 版本 TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
  11. ction
  12. 启动日期 20-7月 -2017 22:53:17
  13. 正常运行时间 0 天 0 小时 0 分 22 秒
  14. 跟踪级别 off
  15. 安全性 ON: Local OS Authentication
  16. SNMP OFF
  17. 监听程序参数文件 C:\app\Administrator\product\11.2.0\dbhome_1\network\a
  18. dmin\listener.ora
  19. 监听程序日志文件 c:\app\administrator\diag\tnslsnr\WIN-J351NF8VN9D\list
  20. ener\alert\log.xml
  21. 监听端点概要...
  22. (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-J351NF8VN9D)(PORT=1521)))
  23. (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-J351NF8VN9D)(PORT=1522)))
  24. (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  25. 服务摘要..
  26. 服务 "CLRExtProc" 包含 1 个实例。
  27. 实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
  28. 服务 "orcl" 包含 1 个实例。
  29. 实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
  30. 服务 "orclXDB" 包含 1 个实例。
  31. 实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
  32. 命令执行成功

一个监听器下边,两个端口号。

那么问题来了, 这两种方式有什么区别呢? 一个是两个监听器,另一个是一个监听器两个端口号。

欢迎大家讨论!!!



0