一般情况下,orcale的监听可以分为以下2种情况进行配置
1. 服务器上有多个实例,多个实例共同使用1个监听程序(即同一个端口进行监听)
2. 服务器上有多个实例,每个实例分别使用独立的监听程序(既使用不同的监听端口)
step1.配置监听程序
默认情况下,数据库安装好后,会建立一个listener的监听程序,默认端口1521.
使用自带管理软件 net configuration assistant 进行监听程序的增加、删除、重命名等操作。添加监听程序成功后,会自动生成相关 “监听服务”
step2 配置“服务命名”
PS:(1)如果是 多实例使用一个监听端口,即在这里,把每一个服务命名的 监听端口设置一致即可。
(2)如果是 多实例使用不同监听端口,即在这里,把每个服务命名的监听端口设置不一样即可。
如果出现:ORA-12514:TNS 错误,需要修改目录:C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN 下的listener.ora文件
把内容修改如下
# listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
#监听程序的描述-第一个默认的监听程序,使用1521端口
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
#新增加的监听程序,使用1522端口
LISTENER1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = WIN-D3Z0VMU1JGC)(PORT = 1522))
)
)
# 服务命名的内容,如果需要2个监听程序,分别使用不同的端口,需要配备2个如下的参数
# 第一个服务命名,与第一个监听程序名称对应
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(SID_NAME = orcl)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl2)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(SID_NAME = orcl2)
)
)
# 第二个服务命名,与第二个监听程序名称对应
SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(SID_NAME = orcl)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl2)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(SID_NAME = orcl2)
)
)
完成之后,重启监听程序,即可