私
SCANリスナーもちゃんと立ち上がってるし、サービスもリッスンしている状態なのにクライアントから接続できない!
RACサーバー上からは SCAN経由で接続できるのに、クライアントから接続してみると ORA-12514 や ORA-12541 が発生する場合、remote_listener がきちんと設定されているかを確認してみよう。
ORA-12514: TNS: listener does not currently know of service requested in connect descriptor
ORA-12541: TNS: no listener
クライアントからの接続状況
[oracle@helloymyworld ~]$ sqlplus system@XXX.XX.XXX.XXX/rac
SQL*Plus: Release 12.2.0.1.0 Production on Sat Aug 14 14:59:54 2021
Copyright (c) 1982, 2016, Oracle. All rights reserved.
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
[oracle@helloymyworld ~]$ sqlplus system@XXX.XX.XXX.XXX/rac
SQL*Plus: Release 12.2.0.1.0 Production on Sat Aug 14 14:59:54 2021
Copyright (c) 1982, 2016, Oracle. All rights reserved.
ERROR:
ORA-12541: TNS: no listener
サーバーからパラメタを設定
oracleユーザーで、remote_listener パラメタに何が設定されているか確認する。
何も設定されていない!
SQL> show parameter remote_listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_listener string
もし何も設定されていなかったり、SCAN ではない値が設定されていたら以下のコマンドで設定する。
alter system set remote_listener='<SCAN名>:1521' scope=both sid='*';
実行例
SQL> alter system set remote_listener='hellomyworld-scan:1521' scope=both;
System altered.
SQL> show parameter remote_listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_listener string hellomyworld-scan:1521
使えるコマンド
SCANの状態を確認
srvctl config scan
実行例
[oracle@hellomyworld]$ srvctl config scan
SCAN name: hellomyworld-scan, Network: 1
Subnet IPv4: XXX/eth0, static
Subnet IPv6:
SCAN 1 IPv4 VIP: XXX.XX.XXX.XXX
SCAN VIP is enabled.
SCANリスナーの状態を確認
srvctl config scan_listener
実行例
[oracle@hellomyworld]$ srvctl config scan_listener
SCAN Listeners for network 1:
Registration invited nodes:
Registration invited subnets:
Endpoints: TCP:1521
SCAN Listener LISTENER_SCAN1 exists
SCAN Listener is enabled.
クライアントから対象のマシン(SCAN)にアクセス可能か確認
tnsping XXX.XX.XXX.XXX
実行例
[hello@myclient ~]$ tnsping XXX.XX.XXX.XXX
TNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 14-AUG-2021 14:13:28
Copyright (c) 1997, 2016, Oracle. All rights reserved.
Used parameter files:
/u01/app/hello/product/12.2.0/dbhome_1/network/admin/sqlnet.ora
Used EZCONNECT adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=XXX.XX.XXX.XXX)(PORT=1521)))
OK (60 msec)