OracleNet完全ガイド:リスナーの動的構成を徹底解説!

Oracle Master Bronze

Oracleデータベースを管理する上で、「リスナー」の構成方法を理解することは非常に重要です。特に、リスナーの動的構成は日常の運用で頻繁に利用されます。本記事では、リスナーの動的構成の仕組みや設定手順、確認方法まで詳しく解説します。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

リスナーの動的構成とは?

リスナーの動的構成とは、Oracleデータベースが起動時に自身のサービス情報をリスナーに自動的に登録する仕組みです。これにより、管理者がlistener.oraファイルを手動で編集する手間が省けます。

テキスト図:

Oracleデータベース起動
     │
     │ サービス情報を自動登録
     ▼
リスナー
     │
     ▼
クライアント

リスナーの静的構成についてはコチラ。

動的構成のメリット

  • listener.oraを手動で編集する必要がない
  • サービスの追加や変更が容易である
  • 日常の運用管理が効率化される

動的構成の仕組み

リスナーはデフォルトでTCPの1521ポートを待機しています。Oracleインスタンスが起動すると、自動的にリスナーに接続し、サービス名やインスタンス名などの情報を登録します。

デフォルトリスナーの動的構成

動的構成でデフォルトリスナー(1521ポート)を使用する場合は、listener.oraファイル自体を作成する必要はありません。Oracleデータベースがリスナーに自動的に登録されるため、追加設定なしで使用可能です。

listener.oraを使用したい場合の最小限の構成例は以下の通りです。

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

動的構成の設定手順

① listener.oraを使用する場合、作成または編集する(必須ではありません)。

$ vi $ORACLE_HOME/network/admin/listener.ora

② リスナーを起動または再起動する。

$ lsnrctl stop
$ lsnrctl start

または、変更を反映させる場合はリロードを使用します。

$ lsnrctl reload

③ データベースを起動する。

SQL> startup

動的構成の確認方法

リスナーに登録されたサービスを確認するには以下のコマンドを実行します。

$ lsnrctl status

正常に動的登録されると、以下のようにサービスが表示されます。

Services Summary...
Service "ORCL" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...

ここで表示されるREADYは、動的に登録されたインスタンスが稼働していることを示しています。

コマンド実行例

[oracle@orcl19c ~]$ lsnrctl start

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 05-AUG-2025 00:00:00

Copyright (c) 1991, 2019, Oracle. All rights reserved.

Starting /u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Log messages written to /u01/app/oracle/diag/tnslsnr/orcl19c/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orcl19c)(PORT=1521)))

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 05-AUG-2025 00:00:00
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/orcl19c/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orcl19c)(PORT=1521)))
The listener supports no services ★サービス登録されていない
The command completed successfully
[oracle@orcl19c ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Aug 5 00:05:02 2025
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup ★DB インスタンスを起動
ORACLE instance started.

Total System Global Area 1543500144 bytes
Fixed Size 8896880 bytes
Variable Size 889192448 bytes
Database Buffers 637534208 bytes
Redo Buffers 7876608 bytes
Database mounted.
Database opened.
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
[oracle@orcl19c ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 05-AUG-2025 00:12:38

Copyright (c) 1991, 2019, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 05-AUG-2025 00:00:00
Uptime 0 days 0 hr. 12 min. 38 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/orcl19c/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orcl19c)(PORT=1521)))
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
[oracle@orcl19c ~]$

動的構成時の注意点

  • リスナーを起動する際には、Oracleインスタンスより先に起動しておく必要があります。
  • 動的登録が正常に動作しない場合は、インスタンスの設定を再確認してください。

動的構成でサービスが登録されない場合の原因と対応方法

  • Oracleインスタンスが起動していない。
    • 対応方法:インスタンスが起動していることを確認します(ps -ef | grep pmonなどのコマンドを使用)。
  • インスタンスの初期化パラメータLOCAL_LISTENERが正しく設定されていない。
    • 対応方法:LOCAL_LISTENERパラメータを確認し、正しいリスナー情報に設定します。
  • リスナーが正しく起動していない。
    • 対応方法:lsnrctl statusでリスナーの状態を確認し、停止している場合は再起動します。
  • ネットワークの問題により、Oracleインスタンスがリスナーに接続できない。
    • 対応方法:ファイアウォールやネットワーク設定を確認し、接続可能な状態にします。

静的構成と動的構成の違い

構成方法データベース停止中の接続受付サービスの登録方法用途
静的構成listener.oraに手動で記述リモート起動など
動的構成データベース起動時に自動登録通常の運用

まとめ

リスナーの動的構成を活用することで、日常的な運用管理が容易になり、サービスの追加や変更を効率的に行えます。動的構成の特性を理解し、日々のデータベース管理に役立てましょう。

[参考]
Oracle Database Database Net Services リファレンス 19c

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました