リスナーとは簡単に説明すると、Oracle Databaseサーバーに常駐しているプロセスで、クライアントからDatabaseへの接続依頼がきた時にDBサーバに接続要求を引き渡すプロセスです。
Oracle Database のリスナーを操作するlsnrctlコマンドについて、リスナー起動・リスナー停止・リスナー確認方法を紹介します。
リスナーが起動している場合
lsnrctl statusコマンドでリスナーの状態を確認します。
[oracle@oel77 ~]$ lsnrctl status
LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 25-JAN-2020 23:22:08
Copyright (c) 1991, 2018, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oel77)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 18.0.0.0.0 - Production
Start Date 25-JAN-2020 23:21:41
Uptime 0 days 0 hr. 0 min. 26 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/18.0.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/oel77/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oel77)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
rootユーザでssコマンドでリスナープロセスを確認すれば、1521番ポート(デフォルト)で待ち構えていることが確認できます。
[root@oel77 ~]# ss -natp |grep LISTEN |grep tnslsnr
LISTEN 0 128 [::]:1521 [::]:* users:(("tnslsnr",pid=17652,fd=8))
リスナーが停止している場合
lsnrctl statusコマンドでリスナーの状態を確認します。
[oracle@oel77 ~]$ lsnrctl status
LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 25-JAN-2020 23:25:26
Copyright (c) 1991, 2018, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oel77)(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 2: No such file or directory
リスナー起動方法
lsnrctl startコマンドでリスナーを起動します。
[oracle@oel77 ~]$ lsnrctl start
LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 25-JAN-2020 23:26:05
Copyright (c) 1991, 2018, Oracle. All rights reserved.
Starting /u01/app/oracle/product/18.0.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 18.0.0.0.0 - Production
System parameter file is /u01/app/oracle/product/18.0.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/oel77/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oel77)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oel77)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 18.0.0.0.0 - Production
Start Date 25-JAN-2020 23:26:05
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/18.0.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/oel77/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oel77)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
リスナー停止方法
lsnrctl stopコマンドでリスナーを停止します。
[oracle@oel77 ~]$ lsnrctl stop
LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 25-JAN-2020 23:24:45
Copyright (c) 1991, 2018, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oel77)(PORT=1521)))
The command completed successfully
[oracle@oel77 ~]$ which lsnrctl
/u01/app/oracle/product/18.0.0/dbhome_1/bin/lsnrctl
リスナーログの場所
以下の記事にまとめましたので、参考にしていただければと思います。