Oracle ORAエラー

ORA-12541 や ORA-12514 が発生して SCAN経由の接続ができないときに確認すること

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)

この記事が役に立ったという方は
ボタンをポチッとしてくれたら喜びます

-Oracle, ORAエラー
-,