istener.ora文件的内容如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = jingyong)
(ORACLE_HOME =/u01/app/oracle/product/10.2.0/db)
(SID_NAME = jingyong)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = jingyong)(PORT = 1521))
)
)
上面的配置只配置了一个listener
下面再增加一个listener_2
SID_LIST_LISTENER_2 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = jingyong)
(ORACLE_HOME =/u01/app/oracle/product/10.2.0/db)
(SID_NAME = jingyong)
)
)
LISTENER_2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = jingyong)(PORT = 1522))
)
)
SID_LIST_
SID_DESC则注册要提供服务的数据库实例名。这样LISTENER2 才能够提供服务。
再来启动两个listener
[oracle@jingyong udump]$ lsnrctl stop listener LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 13-JAN-2013 18:06:21 Copyright (c) 1991, 2005, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=jingyong)(PORT=1521))) The command completed successfully [oracle@jingyong udump]$ lsnrctl start listener_2 LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 13-JAN-2013 18:06:37 Copyright (c) 1991, 2005, Oracle. All rights reserved. Starting /u01/app/oracle/product/10.2.0/db/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 10.2.0.1.0 - Production System parameter file is /u01/app/oracle/product/10.2.0/db/network/admin/listener.ora Log messages written to /u01/app/oracle/product/10.2.0/db/network/log/listener_2.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=jingyong)(PORT=1522))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=jingyong)(PORT=1522))) STATUS of the LISTENER ------------------------ Alias listener_2 Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production Start Date 13-JAN-2013 18:06:37 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/10.2.0/db/network/admin/listener.ora Listener Log File /u01/app/oracle/product/10.2.0/db/network/log/listener_2.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=jingyong)(PORT=1522))) Services Summary... Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... Service "jingyong" has 1 instance(s). Instance "jingyong", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully [oracle@jingyong udump]$ lsnrctl start listener LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 13-JAN-2013 18:06:41 Copyright (c) 1991, 2005, Oracle. All rights reserved. Starting /u01/app/oracle/product/10.2.0/db/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 10.2.0.1.0 - Production System parameter file is /u01/app/oracle/product/10.2.0/db/network/admin/listener.ora Log messages written to /u01/app/oracle/product/10.2.0/db/network/log/listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=jingyong)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=jingyong)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias listener Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production Start Date 13-JAN-2013 18:06:41 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/10.2.0/db/network/admin/listener.ora Listener Log File /u01/app/oracle/product/10.2.0/db/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=jingyong)(PORT=1521))) Services Summary... Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... Service "jingyong" has 1 instance(s). Instance "jingyong", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully
一个oracle实例对于多个监听,一个监听对于多个端口。
现在我们可以创建一个oracle实例一个监听的两个端口。这一共有两种方法:
在listener文件添加一行,具体如下:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = jingyong)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = jingyong)(PORT = 1522))
)
)
这时我们只有重启监听,就可以用两个端口连接数据库实例了。。。。
当然我们也可以一个实例启动两个监听,但是具体只有一个监听起作用。
我们可以在一个数据库下,一个实例对于一个监听,但实例必须在不同目录。或者先建监听,再建实例。一样能达到效果。。。
具体配置如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = jingyong)
(ORACLE_HOME =/u01/app/oracle/product/10.2.0/db)
(SID_NAME = jingyong)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = jingyong)(PORT = 1521))
)
)
SID_LIST_LISTENER_2 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = jingyong)
(ORACLE_HOME =/u01/app/oracle/product/10.2.0/db)
(SID_NAME = jingyong)
)
)
LISTENER_2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = jingyong)(PORT = 1522))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = jingyong)(PORT = 1523))
)
)
“Well I sincerely enjoyed studying it. This tip procured by you is very constructive for accurate planning.”
Hello, I enjoy reading all of your article. I like to write a little comment to support you.