Oracle Databaseでは、クライアントからの接続を受け付けるためにOracle Net Listener(リスナー)が利用されます。このリスナーがデータベースのサービス情報を正しく把握するためには、データベース側から自身の情報を登録する仕組みが必要です。
Oracleのバックグラウンドプロセスには、インスタンス情報や負荷状況などをリスナーへ定期的に通知し、自動登録を行う役割を持つものがあります。この記事では、そのプロセスの役割や動作の仕組みについて詳しく解説します。
Oracle Databaseとリスナーの関係
Oracle Databaseへ接続する場合、クライアントは直接データベースインスタンスへ接続するのではなく、まずOracle Net Listenerへ接続要求を送ります。
リスナーは接続要求を受け取る受付役として動作し、登録されているサービス情報を確認した上で、適切なデータベースインスタンスへ接続を引き渡します。
そのため、リスナーがどのデータベースサービスを利用できるのかを把握していることが重要になります。
リスナーへインスタンス情報を自動登録するプロセスはLREG
Oracleのバックグラウンドプロセスのうち、リスナーへ自身のインスタンス情報やサービス情報を自動登録する役割を持つものは「LREG(Listener Registration)プロセス」です。
LREGはOracle Database 12c以降で使用されるバックグラウンドプロセスで、以前のバージョンで利用されていたPMONによるリスナー登録処理を引き継いでいます。
このプロセスによって、データベースインスタンスの情報やサービス名、負荷状況などがリスナーへ動的に登録されます。
LREGプロセスが行う動的サービス登録の仕組み
LREGによる登録は「動的サービス登録」と呼ばれます。データベースインスタンスが起動すると、LREGが自動的にリスナーへ接続し、自分自身の情報を通知します。
登録される主な情報には以下のようなものがあります。
- データベースサービス名
- インスタンス名
- データベースの状態
- 利用可能なサービス情報
- 負荷情報
例えば、複数のOracle Databaseが存在する環境では、LREGがそれぞれのインスタンス情報をリスナーへ登録することで、リスナーは接続先を正しく判断できます。
PMONとLREGの違い
Oracle Databaseの学習では、リスナー登録とPMONプロセスの関係について混乱することがあります。
以前のOracle Databaseでは、PMON(Process Monitor)がリスナーへのサービス登録を担当していました。しかし、Oracle Database 12c以降では、この役割がLREGへ分離されています。
| プロセス | 主な役割 |
|---|---|
| LREG | リスナーへのサービス登録や状態通知 |
| PMON | 異常終了したプロセスの監視やクリーンアップ処理 |
現在のOracle環境では、リスナー登録の担当プロセスとしてLREGを覚えておくことが重要です。
LREGが正常に動作しているか確認する方法
LREGによる登録状況は、リスナー側から確認できます。代表的な確認方法として「lsnrctl status」コマンドがあります。
実行すると、リスナーに登録されているサービス名やインスタンス情報を確認できます。
例えば、データベースを起動したのにリスナーからサービスが見えない場合は、LREGの登録が完了していない、またはLOCAL_LISTENER設定に問題がある可能性があります。
LREGによる動的登録が失敗する主な原因
LREGが正常にリスナーへ登録できない場合、クライアント接続時に「ORA-12514: リスナーは接続記述子で要求されたサービスを現在認識していません」といったエラーが発生することがあります。
主な原因としては以下が考えられます。
- リスナーが起動していない
- LOCAL_LISTENERの設定が正しくない
- ネットワーク設定に問題がある
- データベース起動直後で登録が完了していない
このような場合は、リスナー状態の確認や初期化パラメータの確認を行うことで原因を特定できます。
まとめ
Oracle Databaseのバックグラウンドプロセスのうち、リスナーへ自身のインスタンス情報や負荷状況を定期的に自動登録するものは「LREG(Listener Registration)プロセス」です。
LREGはOracle Database 12c以降でリスナー登録処理を担当し、サービス情報やインスタンス情報をOracle Net Listenerへ通知します。
Oracleの接続設定やORA-12514などのリスナー関連エラーを解決するには、LREGによる動的サービス登録の仕組みを理解しておくことが重要です。


コメント