对于一个实例的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/oracle@192.168.56.15: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/oracle@192.168.56.15:1523/orcldb2 进行连接
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30150152/viewspace-1479571/
,如需转载,请注明出处,否则将追究法律责任。