背景:
開發需要直連測試庫,因爲內網限制無法訪問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肯定是沒錯的)