如题,周五在客户现场,看到客户在baidu搜索相关的信息,就讨论下他的需求:
由于收市后(证券公司),默认的1521端口会被切断,但是出于维护需要连接上这个数据库。
客户的想法是同一个监听2个端口,我的想法是2个监听。在此记录下2中不同的方式。
原listener.ora配置文件:
# listener.ora Network Configuration File: /opt/oracle/db/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = gtlions)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /opt/oracle/db
1、一个监听对应2个端口 1521 1522
listener.ora配置如下:
# listener.ora Network Configuration File: /opt/oracle/db/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = TEST)
(ORACLE_HOME = /opt/oracle/db/db_1)
(SID_NAME = TEST)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = gtlions)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = gtlions)(PORT = 1522))
)
)
ADR_BASE_LISTENER = /opt/oracle/db
tnsnames.ora配置如下:
# tnsnames.ora Network Configuration File: /opt/oracle/db/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
)
TEST2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
)
测试
通过TEST和TEST2均能够连接和使用,但是stop掉监听listener之后2个端口无法都无法使用。
2、2个监听对应2个端口1521 1522
listener.ora配置如下:
# listener.ora Network Configuration File: /opt/oracle/db/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = TEST)
(ORACLE_HOME = /opt/oracle/db/db_1)
(SID_NAME = TEST)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = gtlions)(PORT = 1521))
)
)
SID_LIST_TEST =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = TEST)
(ORACLE_HOME = /opt/oracle/db/db_1)
(SID_NAME = TEST)
)
)
TEST =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = gtlions)(PORT = 1522))
)
)
ADR_BASE_LISTENER = /opt/oracle/db
tnsnames.ora配置不变。
测试
通过TEST和TEST2均能够连接和使用,而且因为2个端口分别由2个listener管理,单独停掉或被封住一个端口并不影响另一个端口使用。
小结
第1种方式一个监听对应2个端口,带来的问题是无法单独关掉这个端口的监听。
-The End-