■事象
$ lsnrctl services
LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 10-1月 -2020 05:54:56
Copyright (c) 1991, 2014, Oracle. All rights reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c1)(PORT=1521)))に接続中
TNS-12543: TNS: 接続先ホストに到達できません。
TNS-12560: TNS: プロトコル・アダプタ・エラー
TNS-00513: 接続先ホストに到達できません。
Linux Error: 113: No route to host
(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))に接続中
リスナーはサービスをサポートしていません。
コマンドは正常に終了しました。
■原因
HOST=設定値 ←この設定値の名前解決が出来ていない
ここの例では、oracle12c1の名前解決が出来ていない
⇒ 疑うべきは色々ありますが、まずは、/etc/hostsで間違ったIPで登録していないか要確認
【$ORACLE_HOME/network/admin/listener.ora の内容】
# listener.ora Network Configuration File: /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle12c1)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
【/etc/hosts】
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.203.67 oracle12c1
↑
先日、固定IPを、192.168.203.67から192.168.203.77に変更していた
■解決方法
名前解決させてあげる
この例では、
1./etc/hostsの記載を修正
これでOK(lsnrctl reloadは不要)
2.確認
$ lsnrctl status
LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 10-1月 -2020 06:08:23
Copyright (c) 1991, 2014, Oracle. All rights reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c1)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for Linux: Version 12.1.0.2.0 - Production
開始日 10-1月 -2020 05:09:36
稼働時間 0 日 0 時間 58 分 49 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
パラメータ・ファイル /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
ログ・ファイル /u01/app/oracle/diag/tnslsnr/oracle12c1/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c1)(PORT=1521)))
後略
■補足
エラー発生時、下記ログには、これといって有用なログは出ませんでした。
$ORACLE_BASE/diag/tnslsnr/oracle12c1/listener/trace/listener.log