背景:
开发需要直连测试库,因为内网限制无法访问1521端口,只能新建一个8001端口的监听来供使用
因为某种原因 无法调取GUI,只能手工创建
srvctl 创建资源
[grid@m1-ite-db02 ~]$ srvctl add listener -h
Adds a listener configuration to the Oracle Clusterware.
Usage: srvctl add listener [-listener <lsnr_name>] {[-netnum <network_number>] [-oraclehome <path>] [-user <oracle_user>] | -asmlistener [-subnet <subnet>] | -leaflistener [-subnet <subnet>]} [-skip] [-endpoints "[TCP:]<port>[, ...][/IPC:<key>][/NMP:<pipe_name>][/TCPS:<s_port>] [/SDP:<port>]"] [-invitednodes <node_list>] [-invitedsubnets <subnet_list>]
-listener <lsnr_name> Listener name (default name is LISTENER)
-oraclehome <path> Oracle home path (default value is CRS_HOME)
-netnum <network_number> Network number (default number is 1)
-user <oracle_user> Oracle user
-asmlistener ASM listener type
-leaflistener Leaf listener type
-subnet <subnet> Subnet for ASM or Leaf listener
-skip Skip the checking of ports
-endpoints "[TCP:]<port>[, ...][/IPC:<key>][/NMP:<pipe_name>][/TCPS:<s_port>] [/SDP:<port>]" Comma separated TCP ports or listener endpoints
-invitednodes <node_list> Comma separated list of node names allowed to register with Listener
-invitedsubnets <subnet_list> Comma separated list of subnets allowed to register with Listener
-help Print usage
[grid@m1-ite-db02 ~]$ srvctl add listenr -l LISTENER2 -p 8001 -k 1
添加完服务后,去修改一下listener.ora,配置一下静态注册
在listener.ora中添加
SID_LIST_LISTENER2 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = xxxx)
(ORACLE_HOME = xx)
(SID_NAME = xxx)
)
)
这里需要注意的是,因为是Oracle 12c,有pdb和cdb的概念,所以配置时GLOBAL_DBNAME要写pdb的名称,SID_NAME写pdb的名称(instance_name),ORACLE_HOME写Oracle用户的ORACLE_HOME路径
还要注意一点是 两个节点的listener.ora都要修改
启动服务
[grid@m1-ite-db02 admin]$ srvctl start listener -l LISTENER2
查看监听状态
[grid@m1-ite-db02 ~]$ lsnrctl status LISTENER2
LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 20-FEB-2020 19:27:26
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER2)))
STATUS of the LISTENER
------------------------
Alias LISTENER2
Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date 20-FEB-2020 18:44:05
Uptime 0 days 0 hr. 43 min. 21 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/12.1.0.2/grid/network/admin/listener.ora
Listener Log File /u01/app/grid/diag/tnslsnr/m1-ite-db02/listener2/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER2)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.x.x.x)(PORT=8001)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.x.x.xx))(PORT=8001)))
Services Summary...
Service "BIPROD" has 1 instance(s).
Instance "BIRAC2", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
如果GLOBAL_DBNAME和SID_NAME配置不正确的话,对监听的启动是没有影响的,但是在使用监听连接的时候会报错,我在配置时就遇到以下两种错误:
1.连接时提示Oracle not available
2.连接时提示 invalid username/password(username和password肯定是没错的)