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 

进行连接

猜你喜欢

转载自blog.csdn.net/kone0611/article/details/87966527
今日推荐