Oracleのリスナー(Listener)をスッキリ理解する

Oracleのリスナー(Listener)

Oracleのリスナー(Listener)とは何でしょうか?Oracleの説明にはこうあります。

Oracle Net Listenerとは、データベース・サーバー・コンピュータで実行される独立したプロセスです。着信中のクライアント接続要求を受信し、データベース・サーバーに対する要求の通信量を管理します。

これを読んでもよくわかりませんね・・・。

リスナーは聞き手

リスナー(Listener)は、英語の意味をそのまま考えればわかりやすいかもしれません。Listenerは「聞く人」という意味です。

ラジオをきく人のことを「リスナー」といいますよね?これと同じだと思います。これで何となくイメージできるかもしれません。

Oracleのリスナー(Listener)とはザックリいうと、「クライアントの要求を聞く人」です。だから「リスナー」です。

リスナーが接続を受けつける

リスナーはOracleサーバーのサービスの1つです。例えば、Oracleクライアントから「サーバーに接続したい」と要求があれば、サーバー側のリスナーが受け付けます。そしてログイン情報がOKであれば接続させます。

このリスナーがサーバーにいなければクライアントは何もできません。だってリスナーがいなければ、そもそもサーバーに接続できないので。

サーバーに接続できなかったら何もできませんよね?Oracleサーバーへの接続を受け付けるリスナーはとても重要なサービスなのです。

リスナー(Listener)の設定

リスナーの設定はリスナー設定ファイル「listener.ora」で行います。「listener.ora」はオラクルホームのnetworkフォルダ内にあります。

リスナーの設定

  • ファイル名: listener.ora
  • パス: %ORACLE_HOME%\network

リスナー(listener.ora)の中身

# listener.ora Network Configuration File:
 C:\app\ora\product\12.1.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

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

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\ora\product\12.1.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\ora\product\12.1.0\dbhome_1\bin\oraclr12.dll")
    )
  )

ここではOracleサーバーの「listener.ora」の中を見てみます。(Oracle 12c)

「LISTENER」と「SID_LIST_LISTENER」の2つの設定があります。「SID_LIST_LISTENER」はサーバー内部用、「LISTENER」はクライアント用のリスナーです。この2つでセットになります。

クライアントからサーバーへ接続を受け付ける、いわゆるリスナーは「LISTENER」の方です。上記の設定をみると、「LISTENER」はTCPポート1521となっています。

リスナーはTCPポート1521を監視しているんですね。クライアントはここで接続します。

Oracleのリスナー(Listener)のまとめ

  • リスナーはOracleサーバーのサービスの1つ
  • クライアントの接続要求を受け付ける
  • サーバーのリスナーが起動していないとクライアントはOracleサーバーへ接続できない

以上、Oracleのリスナー(Listener)とは?でした。

 

コメント