
- OS:Oracle Linux 9.7
- DB:Oracle AI Database 23.26.1.0.0 Enterprise Edition
lsnrctl start実行時にTNS-12560/TNS-00584が発生して、Oracle Listenerが起動できないことがあります。
[oracle@learnbytebybyte ~]$ lsnrctl start
LSNRCTL for Linux: Version 23.26.1.0.0 - Production on 16-2月 -2026 21:05:40
Copyright (c) 1991, 2026, Oracle. All rights reserved.
/u01/app/oracle/product/26.0.0/dbhome_1/bin/tnslsnrを起動しています。お待ちください...
TNSLSNR for Linux: Version 23.26.1.0.0 - Production
システム・パラメータ・ファイルは/u01/app/oracle/product/26.0.0/dbhome_1/network/admin/listener.oraです。
ログ・メッセージを/u01/app/oracle/diag/tnslsnr/learnbytebybyte/listener/alert/log.xmlに書き込みました。
リスニング・エラーです: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=learnbytebybyte)(PORT=1521)))
TNS-12560: データベース通信プロトコル・エラー。
TNS-00584: 有効なノードの確認中に発生した構成エラー
リスナーが起動に失敗しました。前述のエラー・メッセージを参照してください...本記事では、「TNS-00584: 有効なノードの確認中に発生した構成エラー」の解決方法を解説します。
- TNS-00584の発生原因
- TNS-00584の解決方法
問題点
lsnrctl start実行時にTNS-12560/TNS-00584が発生して、Oracle Listenerが起動できないことがあります。
[oracle@learnbytebybyte ~]$ lsnrctl start
LSNRCTL for Linux: Version 23.26.1.0.0 - Production on 16-2月 -2026 21:05:40
Copyright (c) 1991, 2026, Oracle. All rights reserved.
/u01/app/oracle/product/26.0.0/dbhome_1/bin/tnslsnrを起動しています。お待ちください...
TNSLSNR for Linux: Version 23.26.1.0.0 - Production
システム・パラメータ・ファイルは/u01/app/oracle/product/26.0.0/dbhome_1/network/admin/listener.oraです。
ログ・メッセージを/u01/app/oracle/diag/tnslsnr/learnbytebybyte/listener/alert/log.xmlに書き込みました。
リスニング・エラーです: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=learnbytebybyte)(PORT=1521)))
TNS-12560: データベース通信プロトコル・エラー。
TNS-00584: 有効なノードの確認中に発生した構成エラー
リスナーが起動に失敗しました。前述のエラー・メッセージを参照してください...解決方法
Oracle公式サイトを調べると、有効なノード確認の構成エラーが原因です。
原因: 有効なノード確認に固有のOracle Net構成が無効です。
処置: “invited_nodes”および”excluded_nodes”に指定したホストが有効であることを確認してください。詳細を調べるには、トレースをオンにして操作を再実行してください。
引用元:Oracle公式サイト
TNS-00584が発生する原因は主に2つになります。
- TCP.INVITED_NODES、TCP.EXCLUDED_NODESの構文エラー
- TCP.VALIDNODE_CHECKINGのみの指定
(制限が必要な場合)INVITED_NODESかEXCLUDED_NODESの構文を修正
1つ目は、TCP.INVITED_NODES、TCP.EXCLUDED_NODESの構文にエラーがある場合に、TNS-00584が発生します。
形式として成立しないIPアドレスを指定すると
下記は、形式として成立しないIPアドレス「111.111.111.1111」を指定すると、TNS-00584が発生することを確認しました。
[oracle@learnbytebybyte ~]$ cat /u01/app/oracle/product/26.0.0/dbhome_1/network/admin/sqlnet.ora
# sqlnet.ora Network Configuration File: /u01/app/oracle/product/26.0.0/dbhome_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
TCP.VALIDNODE_CHECKING=yes
TCP.INVITED_NODES = (111.111.111.1111) #構文エラー
[oracle@learnbytebybyte ~]$ lsnrctl start
LSNRCTL for Linux: Version 23.26.1.0.0 - Production on 16-2月 -2026 21:16:43
Copyright (c) 1991, 2026, Oracle. All rights reserved.
/u01/app/oracle/product/26.0.0/dbhome_1/bin/tnslsnrを起動しています。お待ちください...
TNSLSNR for Linux: Version 23.26.1.0.0 - Production
システム・パラメータ・ファイルは/u01/app/oracle/product/26.0.0/dbhome_1/network/admin/listener.oraです。
ログ・メッセージを/u01/app/oracle/diag/tnslsnr/learnbytebybyte/listener/alert/log.xmlに書き込みました。
リスニング・エラーです: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=learnbytebybyte)(PORT=1521)))
TNS-12560: データベース通信プロトコル・エラー。
TNS-00584: 有効なノードの確認中に発生した構成エラー
リスナーが起動に失敗しました。前述のエラー・メッセージを参照してください...そのため、TCP.INVITED_NODES、TCP.EXCLUDED_NODESに正規のIPアドレスを指定することでTNS-00584が解消され、lsnrctl startは正常に動作します。
[oracle@learnbytebybyte ~]$ vi /u01/app/oracle/product/26.0.0/dbhome_1/network/admin/sqlnet.ora
[oracle@learnbytebybyte ~]$ cat /u01/app/oracle/product/26.0.0/dbhome_1/network/admin/sqlnet.ora
# sqlnet.ora Network Configuration File: /u01/app/oracle/product/26.0.0/dbhome_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
TCP.VALIDNODE_CHECKING=yes
TCP.INVITED_NODES = (111.111.111.111)
[oracle@learnbytebybyte ~]$ lsnrctl start
LSNRCTL for Linux: Version 23.26.1.0.0 - Production on 16-2月 -2026 21:36:09
Copyright (c) 1991, 2026, Oracle. All rights reserved.
/u01/app/oracle/product/26.0.0/dbhome_1/bin/tnslsnrを起動しています。お待ちください...
TNSLSNR for Linux: Version 23.26.1.0.0 - Production
システム・パラメータ・ファイルは/u01/app/oracle/product/26.0.0/dbhome_1/network/admin/listener.oraです。
ログ・メッセージを/u01/app/oracle/diag/tnslsnr/learnbytebybyte/listener/alert/log.xmlに書き込みました。
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=learnbytebybyte)(PORT=1521)))
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=learnbytebybyte)(PORT=1521)))に接続中
TNS-12547: TNS: 接続を失いました。
TNS-12560: データベース通信プロトコル・エラー。
TNS-00517: コンタクトがなくなりました。
Linux Error: 104: Connection reset by peer
(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for Linux: Version 23.26.1.0.0 - Production
開始日 16-2月 -2026 21:36:09
稼働時間 0 日 0 時間 0 分 0 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
パラメータ・ファイル /u01/app/oracle/product/26.0.0/dbhome_1/network/admin/listener.ora
ログ・ファイル /u01/app/oracle/diag/tnslsnr/learnbytebybyte/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=learnbytebybyte)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
リスナーはサービスをサポートしていません。
コマンドは正常に終了しました。(制限が不要な場合)TCP.VALIDNODE_CHECKINGだけの記述
2つ目は、TCP.VALIDNODE_CHECKINGのみを指定して、TCP.INVITED_NODES、TCP.EXCLUDED_NODESを記述しない場合に、TNS-00584が発生します。
つまり、制限(TCP.VALIDNODE_CHECKIN)を有効化するなら、TCP.INVITED_NODES、TCP.EXCLUDED_NODESもセットで設計するのが前提になります。
[oracle@learnbytebybyte ~]$ cat /u01/app/oracle/product/26.0.0/dbhome_1/network/admin/sqlnet.ora
# sqlnet.ora Network Configuration File: /u01/app/oracle/product/26.0.0/dbhome_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
TCP.VALIDNODE_CHECKING=yes
#TCP.INVITED_NODES、TCP.EXCLUDED_NODESを指定しない
[oracle@learnbytebybyte ~]$ lsnrctl start
LSNRCTL for Linux: Version 23.26.1.0.0 - Production on 16-2月 -2026 21:15:09
Copyright (c) 1991, 2026, Oracle. All rights reserved.
/u01/app/oracle/product/26.0.0/dbhome_1/bin/tnslsnrを起動しています。お待ちください...
TNSLSNR for Linux: Version 23.26.1.0.0 - Production
システム・パラメータ・ファイルは/u01/app/oracle/product/26.0.0/dbhome_1/network/admin/listener.oraです。
ログ・メッセージを/u01/app/oracle/diag/tnslsnr/learnbytebybyte/listener/alert/log.xmlに書き込みました。
リスニング・エラーです: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=learnbytebybyte)(PORT=1521)))
TNS-12560: データベース通信プロトコル・エラー。
TNS-00584: 有効なノードの確認中に発生した構成エラー
リスナーが起動に失敗しました。前述のエラー・メッセージを参照してください...そのため、TCP.VALIDNODE_CHECKING=yesを削除またはコメント、TCP.VALIDNODE_CHECKING=noのどれかを設定するとTNS-00584が解消され、lsnrctl startは正常に動作します。
[oracle@learnbytebybyte ~]$ vi /u01/app/oracle/product/26.0.0/dbhome_1/network/admin/sqlnet.ora
[oracle@learnbytebybyte ~]$ cat /u01/app/oracle/product/26.0.0/dbhome_1/network/admin/sqlnet.ora
# sqlnet.ora Network Configuration File: /u01/app/oracle/product/26.0.0/dbhome_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
#TCP.VALIDNODE_CHECKING=yesを削除またはコメントアウト
[oracle@learnbytebybyte ~]$ lsnrctl start
LSNRCTL for Linux: Version 23.26.1.0.0 - Production on 16-2月 -2026 21:36:46
Copyright (c) 1991, 2026, Oracle. All rights reserved.
/u01/app/oracle/product/26.0.0/dbhome_1/bin/tnslsnrを起動しています。お待ちください...
TNSLSNR for Linux: Version 23.26.1.0.0 - Production
システム・パラメータ・ファイルは/u01/app/oracle/product/26.0.0/dbhome_1/network/admin/listener.oraです。
ログ・メッセージを/u01/app/oracle/diag/tnslsnr/learnbytebybyte/listener/alert/log.xmlに書き込みました。
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=learnbytebybyte)(PORT=1521)))
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=learnbytebybyte)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for Linux: Version 23.26.1.0.0 - Production
開始日 16-2月 -2026 21:36:47
稼働時間 0 日 0 時間 0 分 0 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
パラメータ・ファイル /u01/app/oracle/product/26.0.0/dbhome_1/network/admin/listener.ora
ログ・ファイル /u01/app/oracle/diag/tnslsnr/learnbytebybyte/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=learnbytebybyte)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
リスナーはサービスをサポートしていません。
コマンドは正常に終了しましたまとめ
lsnrctl startでTNS-00584が出力される場合は、SQLNET.ORAのValid Node Checking(有効なノード確認)関連の設定不備が疑われます。
「TNS-00584: 有効なノードの確認中に発生した構成エラー」が発生する場合は、以下のどちらかで解決できます。
- ノード制限が必要:TCP.INVITED_NODES、TCP.EXCLUDED_NODESのIPアドレスを修正
- ノード制限が不要:TCP.VALIDNODE_CHECKING=yesを削除またはコメント、TCP.VALIDNODE_CHECKING=noのどれかを設定
最後までご愛読ありがとうございました。
