「TNS-00584: 有効なノードの確認中に発生した構成エラー」の解決方法

  • URLをコピーしました!
Oracle Error Handling
僕の作業環境
  • 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 startTNS-00584が出力される場合は、SQLNET.ORAのValid Node Checking(有効なノード確認)関連の設定不備が疑われます。

「TNS-00584: 有効なノードの確認中に発生した構成エラー」が発生する場合は、以下のどちらかで解決できます。

  • ノード制限が必要:TCP.INVITED_NODES、TCP.EXCLUDED_NODESのIPアドレスを修正
  • ノード制限が不要:TCP.VALIDNODE_CHECKING=yesを削除またはコメント、TCP.VALIDNODE_CHECKING=noのどれかを設定

最後までご愛読ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

情報系Fラン大学出身・新卒未経験からデータベースエンジニアに転身。
使用技術:Oracle|TypeScript
資格取得:情報処理安全確保支援士試験|応用情報技術者試験|OracleMaster Gold DBA|OCI Architect Associate

目次