环境:Oracle RAC(11.2.0.3)
现象:通过scanIP连接数据库报错ORA-12514: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
1.查看scan listener状态,发现服务没有注册成功:
[grid@rac1 ~]$ lsnrctl status LISTENER_SCAN1
LSNRCTL for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production on 10-APR-2017 11:06:34
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
STATUS of the LISTENER
------------------------
Alias LISTENER_SCAN1
Version TNSLSNR for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production
Start Date 14-MAR-2017 23:19:53
Uptime 26 days 11 hr. 46 min. 41 sec
Trace Level off
Security ON: Local OS Authentication
SNMP ON
Listener Parameter File /oracle/app/grid_home/network/admin/listener.ora
Listener Log File /oracle/app/grid_home/log/diag/tnslsnr/jyrac2/listener_scan1/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.80)(PORT=1521)))
The listener supports no services
The command completed successfully
2.Oracle用户查看 remote_listener 参数配置:
SQL> show parameter remote_listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_listener string
发现remote_listener参数为空,这显然是不正常的。
3.查看/etc/hosts的scan IP配置行:
cat /etc/hosts
192.168.1.80 jyrac-scan
4.oracle用户登录数据库,配置remote_listener参数:
SQL> alter system set remote_listener = 'jyrac-scan:1521' sid='*' scope=both;
SQL> alter system register;
5.再次查看scan listener状态,发现服务已经注册成功:
[grid@rac1 ~]$ lsnrctl status LISTENER_SCAN1
LSNRCTL for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production on 10-APR-2017 11:13:47
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
STATUS of the LISTENER
------------------------
Alias LISTENER_SCAN1
Version TNSLSNR for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production
Start Date 14-MAR-2017 23:19:53
Uptime 26 days 11 hr. 53 min. 54 sec
Trace Level off
Security ON: Local OS Authentication
SNMP ON
Listener Parameter File /oracle/app/grid_home/network/admin/listener.ora
Listener Log File /oracle/app/grid_home/log/diag/tnslsnr/jyrac2/listener_scan1/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.80)(PORT=1521)))
Services Summary...
Service "SERVICE2" has 1 instance(s).
Instance "testdb1", status READY, has 1 handler(s) for this service...
Service "testdb" has 2 instance(s).
Instance "testdb1", status READY, has 1 handler(s) for this service...
Instance "testdb2", status READY, has 1 handler(s) for this service...
Service "testdb2" has 1 instance(s).
Instance "testdb2", status READY, has 1 handler(s) for this service...
The command completed successfully
再次测试通过scanip连接数据库已经ok。