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)とは?でした。

コメント