リスナーの役割
みなさん、こんにちは。
どうも、さいばーきゃっとです。
今回は、オラクルデータベースのリスナーについて、解説していきます。
唐突ですが、みなさんは、オラクルデータベースのリスナーという用語をご存知でしょうか?
私はオラクルデータベースを勉強するまで、知りませんでしたが、勉強をしていくうちに、このリスナーがクライアントとデータベースとの仲介役を担う重要な役割を持っていることを知りました。
リスナープロセスの役割
リスナープロセスは、データベースサーバ側で動作しているプロセスです。
このリスナーは、データベースサーバ側で「クライアントからの接続要求」を待ち続けており、クライアントからの接続要求を受信すると、その要求を目的のデータベースに転送します。
データべースが接続要求を承認すると、接続要求が転送されたクライアントとデータベースとの間で接続が確立され、通信が可能な状態になります
ここで重要になるのが、リスナーが起動していない場合、クライアントからデータベースサーバに接続することはできないということです。
データベースサーバが起動しているのに、データベースサーバに接続できないときは、リスナーが起動していない可能性がありますので、「リスナー制御ユーティリティ」を使用して、リスナーの状態を確認し、リスナーが停止中の場合、リスナーを起動させます。
リスナー制御ユーティリティ
リスナーは、デフォルトでは自動起動するようになっていません。
そのため、コンピュータの再起動などにリスナーを起動したり、起動中のリスナを停止したりするには、「リスナー制御ユーティリティ」(lsnrctlコマンド)を使用します
以下に、リスナーを制御するコマンドをまとめてみました。
リスナーとの接続後
クライアントからの接続要求があると、リスナーがその接続要求を受け取り、新しくサーバプロセスを起動します。その後、クライアントのユーザプロセスとサーバプロセス間で接続が確立され、初期化情報がサーバプロセスに渡されます。この状態になるとリスナーの役目は終了になります。