Oracle Database 19cのdbcaで新規データベースを作成してnetcaでリスナー構成を行いました。
そこで新たに作成したリスナーのステータスを確認したら
[oracle@rhel8 ~]$ lsnrctl status LISTENER2
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel8)(PORT=1522)))
STATUS of the LISTENER
————————
Alias LISTENER2
Version TNSLSNR for Linux: Version 19.0.0.0.0 – Production
Start Date 15-JAN-2022 17:57:46
Uptime 0 days 0 hr. 34 min. 53 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/rhel8/listener2/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel8)(PORT=1522)))
The listener supports no services
The command completed successfully
起動しているようですが“The listener supports no services”と表示されています。
試しにローカルで接続してみます。ORCLデータベースに接続しているようですが。
1 2 3 4 5 6 7 8 9 10 |
[oracle@rhel8 ~]$ sqlplus / as sysdba Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> SELECT global_name FROM global_name; GLOBAL_NAME -------------------------------------------------------------------------------- ORCL |
状態を確認するとOPENです。
1 2 3 4 5 |
SQL> SELECT status FROM v$instance; STATUS ------------ OPEN |
ユーザも表示されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
SQL> SELECT USERNAME, ACCOUNT_STATUS, PROFILE FROM DBA_USERS WHERE ACCOUNT_STATUS = 'OPEN'; USERNAME -------------------------------------------------------------------------------- ACCOUNT_STATUS -------------------------------- PROFILE -------------------------------------------------------------------------------- SYS OPEN DEFAULT SYSTEM OPEN DEFAULT USERNAME -------------------------------------------------------------------------------- ACCOUNT_STATUS -------------------------------- PROFILE -------------------------------------------------------------------------------- |
調べたらこれかな。
How to Resolve The listener supports no services
https://logic.edchen.org/how-to-resolve-the-listener-supports-no-services/
In fact, this message tells us that the listener is working fine, but no dynamic service registers with the listener. We had better check our database configuration closely.
「リスナーは正常に機能しているが、動的サービスがリスナーに登録されていないことを示しています」と。
確認してみます。local_listenerの値が空でした。
1 2 3 4 5 |
SQL> show parameter local_listener NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ local_listener string |
こちらに合わせて設定します。
1 2 3 4 5 6 7 8 9 10 |
SQL> alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=rhel8)(PORT=1522))'; System altered. SQL> show parameter local_listener NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ local_listener string (ADDRESS=(PROTOCOL=TCP)(HOST=r hel8)(PORT=1522)) |
60秒を待てない場合は
1 |
SQL> ALTER SYSTEM REGISTER; |
サービスが登録されていました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
[oracle@rhel8 ~]$ lsnrctl status LISTENER2 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel8)(PORT=1522))) STATUS of the LISTENER ------------------------ Alias LISTENER2 Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 15-JAN-2022 17:57:46 Uptime 0 days 1 hr. 30 min. 11 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora Listener Log File /opt/oracle/diag/tnslsnr/rhel8/listener2/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel8)(PORT=1522))) Services Summary... Service "orcl" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclXDB" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully |
通常はlistener.oraに静的サービスとして記述すれば必要ないみたいだけど…よく分かりませんorz