【LISTENER】一個資料庫配置兩個監聽埠號

xysoul_雲龍發表於2017-07-20

測試環境: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. 命令執行成功

一個監聽器下邊,兩個埠號。

那麼問題來了, 這兩種方式有什麼區別呢? 一個是兩個監聽器,另一個是一個監聽器兩個埠號。

歡迎大家討論!!!



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2142374/,如需轉載,請註明出處,否則將追究法律責任。

相關文章