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