2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【oracle】リスナーを知りたい初心者はまず見て!!!

Last updated at Posted at 2024-04-06

oracleの勉強やoracle運用していると

  • リスナーを介したDB接続
  • リスナーへのサービス登録を確認する
  • リスナーの状態ってどうなってる?

など、リスナーに関する様々なことが、たまに聞こえてくる。
でも、自分自身、リスナーとoracleって図で示すとどんな関係になるのか、何となくしか把握できていなかった。

そんなDBAの自分が、リスナーとDBの関係を図を使ってイメージするために本記事を投稿する。

また、以下のサイトを参考にするとリスナーに関する理解が深まったので紹介する。
Oracleへの接続について
動的リスナー登録について
静的リスナー登録について

目次

  1. リスナーの役割
  2. リスナーとDBの関係図
  3. 初期化パラメータ LOCAL_LISTENER
  4. 初期化パラメータ SERVICE_NAMES

1. リスナーの役割

DBとリスナーの関係を説明する前に、リスナーの役割について
通常、oracleへのアクセスするには、以下の2種類の方法があります。

  1. ローカル接続
  2. ネットワークを経由した接続

①ローカル接続の場合
インスタンスが起動しているサーバーへ、既にログインできていれば、可能です。下図は、リスナーを介さないoracleへのアクセス方法です。
image.png

②ネットワークを経由した接続の場合
インスタンス起動サーバーとクライアントがアクセスしているサーバーとが、別の場合、下図のようにリスナーを介します。
ネットワークを経由した接続は、リモート接続ともいわれています。

image.png

リスナーの役割とは、

クライアントからリスナーめがけて、
「このサービスに接続したいんだけど?」
と要求が来る。そこでリスナーは。
「このサービスのDBは、あっちですね!」
と案内するのが、リスナーの大きな役割です。

image.png

2. リスナーとDBの関係図

結論から言うと、
リスナーとDBは、まったくの別物と考えてください。
どういうことか。
DB停止中でもリスナーは起動できるし、
リスナーを起動したからと言って、DBが起動するわけでもない。
→リスナーはDBから独立した存在なのです。

通常、リスナーはインスタンスが起動するサーバー内で、起動するのが一般的です。
しかし、ぶっちゃけ、リスナーはどこで起動しても構いません。

①一般的なリスナーとインスタンスの関係
image.png

②リスナーとDBは独立してるから、こんなこともできるよ
image.png

ただ、ここで問題になってくるのは、

インスタンスからしたら、どこにリスナーがあるかわからない。

それを解消してくれるのが、初期化パラメータである LOCAL_LISTENER です。

3. 初期化パラメータ LOCAL_LISTENER

大前提として、

  • 初期化パラメータ LOCAL_LISTENER
  • 初期化パラメータ REMOTE_LISTENER

上記二つの違いは、別途記事で説明します。
簡単に説明すると、二つともどこで起動しているリスナーに接続情報を登録するかを定めているパラメータです。
要するに、リスナーの場所を示しています。

LOCAL_LISTENERの場合、デフォルトでは、インスタンス起動サーバーにリスナーが存在すると設定されています。
LOCAL_LISTENER=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))

image.png

使用用途は、動的リスナー登録を行うときに使用します。
インスタンス→リスナーへ60秒に一回 SERVICE_NAMESの情報を提供しています。
その提供先を LOCAL_LISTENERで毎回確認しながら、情報提供をしているという仕組みです。

4. 初期化パラメータ SERVICE_NAMES

SERVICE_NAMESパラメータとは、
DB名とサービス名を紐づけている設計書
です。
基本的に、クライアントは、oracleにアクセスするとき、サービス名のみ意識しています。リスナーにもサービス名でアクセスしてきます。
そのため、リスナーにサービス名とDB名を紐づけておく必要があるのです。
そこで登場するのが、 SERVICE_NAMESパラメータです。
SERVICE_NAMESは、60秒に一度インスタンス→リスナーに登録を行っています。
image.png

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?