ORACLE單個實例配置多個監聽器

對於一個實例的oracle數據庫,配置多個監聽器的實驗。
服務版本信息:

[oracle@LINUX10 admin]$ lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID:    OracleServer
Description:    Oracle Linux Server release 6.5
Release:    6.5
Codename:    n/a

查看數據庫版本信息:

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE    11.2.0.3.0    Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

查看監聽文件listener.ora的內容

[oracle@LINUX15 ~]$ cd $ORACLE_HOME/network/admin
[oracle@LINUX15 admin]$ ls
listener.ora samples shrept.lst tnsnames.ora
[oracle@LINUX15 admin]$ more listener.ora 
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.3/oracle/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcldb)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.3/oracle)
      (SID_NAME = orcldb)
    )
  )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.15)(PORT = 1521))
  )

ADR_BASE_LISTENER = /u01/app/oracle

開始配置多個監聽器,即更改監聽文件listener.ora,也可以通過netmgr命令進行圖形化更改,增加兩個監聽器 LISTENER1, 端口:1522, LISTENER2, 端口:1523

[oracle@LINUX15 admin]$ vi listener.ora 

# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.3/oracle/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcldb)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.3/oracle)
      (SID_NAME = orcldb)
    )
  )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.15)(PORT = 1521))
  )

ADR_BASE_LISTENER = /u01/app/oracle


LISTENER1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.15)(PORT = 1522))
  )


LISTENER2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.15)(PORT = 1523))
  )

然後通過 lsnrctl 命令將 LISTENER1 和 LISTENER2 啓動(由於之前 LISTENER默認監聽器已經啓動,所以不用啓動)
 

[oracle@LINUX15 admin]$ lsnrctl

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 31-MAR-2015 00:23:05

Copyright (c) 1991, 2011, Oracle. All rights reserved.

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> start listener1
Starting /u01/app/oracle/product/11.2.3/oracle/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.3.0 - Production
System parameter file is /u01/app/oracle/product/11.2.3/oracle/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/LINUX15/listener1/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.15)(PORT=1522)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.15)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias listener1
Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date 31-MAR-2015 00:23:22
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.3/oracle/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/LINUX15/listener1/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.15)(PORT=1522)))
The listener supports no services
The command completed successfully
LSNRCTL> start listener2
Starting /u01/app/oracle/product/11.2.3/oracle/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.3.0 - Production
System parameter file is /u01/app/oracle/product/11.2.3/oracle/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/LINUX15/listener2/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.15)(PORT=1523)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.15)(PORT=1523)))
STATUS of the LISTENER
------------------------
Alias listener2
Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date 31-MAR-2015 00:23:34
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.3/oracle/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/LINUX15/listener2/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.15)(PORT=1523)))
The listener supports no services
The command completed successfully

監聽器LISTENER1 和 LISTENER2 已經正常啓動。但是沒有服務將實例信息註冊進來,需要註冊實例信息,有兩種方法,“動態註冊”和“靜態註冊”
1.首先進行靜態註冊, 
    靜態註冊在文章(http://blog.itpub.net/30150152/viewspace-1477401/)中已經提到,即只需要修改listener.ora文件即可

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcldb)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.3/oracle)
      (SID_NAME = orcldb)
    )
  )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.15)(PORT = 1521))
  )

ADR_BASE_LISTENER = /u01/app/oracle

SID_LIST_LISTENER1 =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcldb1)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.3/oracle)
      (SID_NAME = orcldb)
    )
  )

LISTENER1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.15)(PORT = 1522))
  )



SID_LIST_LISTENER2 =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcldb2)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.3/oracle)
      (SID_NAME = orcldb)
    )
  )

LISTENER2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.15)(PORT = 1523))
  )

    增加了 SID_LIST_LISTENER1 對應的服務名爲 orcldb1  , SID_LIST_LISTENER2 對應的服務名爲 orcldb2 , 注意每個註冊的GLOBAL_DBNAME 不能相同,否則,客戶端通過服務名連接進來的時候將會是隨機連接進來的,這樣導致可能客戶端連接進來的時候,每次對應的監聽不同從而sid_name不同。
    現在重新啓動監聽器 LISTENER1 和 LISTENER2, 就可以通過客戶端連接進來了(在客戶端連接進來的時候,確保1522 和1523 端口是通的,不然無法連接的),下面是我通過一臺windows機器連接進來的

C:\Users\Administrator>sqlplus system/[email protected]:1522/orcldb1

SQL*Plus: Release 11.2.0.1.0 Production on 星期二 3月 31 00:43:22 2015

Copyright (c) 1982, 2010, Oracle. All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

當然,還可以通過 

sqlplus system/[email protected]:1523/orcldb2 

進行連接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章