【Oracle】リスナーの設定をしよう

今回はOracleNet設定において,データベース接続との懸け橋となるリスナー設定について紹介します。

サーバ内でのローカル接続を除き,クライアント(他のPC)から接続するには設定必須です。

Oracleを扱う方はぜひとも参考にしていただければ幸甚です。

目次

前提知識

リスナー

クライアントとOracleデータベース本体との接続を担う機能です。

クライアントからの接続要求を受けて,要求に応じた適切な接続を確立してくれます。

リスナーとデータベースは全くの別物です。

Oracleへ接続するためにはリスナーの設定が必須であり,リスナー無しでは接続できないと考えておきましょう。

イツキ

例えるなら,インターネット回線へ繋ぐプロバイダの役割を担っているよ!

設定方法

listener.ora

リスナーの設定には「listener.ora」を使用します。

「tnsnames.ora」同様,「${ORACLE_HOME}/network/admin」直下に格納します。

設定方法は以下の通りです。

リスナー設定方法
  • データベース作成時にDBCAで設定する。
  • NetCAで設定する。
  • 手動で作成する(BATやシェルを利用した自動作成含む)

「tnsnames.ora」同様,慣れない内はDBCAもしくはNetCAでの作成が無難かと思います。

要領や構文規則が分かってきたら,BATやシェルを利用した自動生成をしてみるのも良いでしょう。

「listener.ora」の基本的な構文は以下の通りです。

1行目と6行目にある「[リスナー名]」は同じにする必要がある点に注意しましょう。

他にもいろいろと定義要素はありますが,最低限まずは上記を把握していれば問題ありません。

クライアント用

最初の「[リスナー名] =」の部分はクライアント向けのリスナー設定で,設定必須です。

一般的には以下のような記述が多いかと思います。

上記の場合,リスナーは「ORCLSRV01」にて「1521」番ポートを開けて待機しており,要求が来た際は「TCP1」プロトコルで通信することを意味しています。

サーバ内部用

「SID_LIST_[リスナー名] =」の部分はサーバ内部向けのリスナー設定です。

接続要求が来た際に,実際に接続するデータベース情報を定義します。

なお,本設定は静的登録(手動によるリスナーへの登録設定)をする際に定義します。

動的登録(インスタンスによるリスナーへの登録設定)をする際は設定不要です。(基本的には設定しなくて良いと考えていただいて問題ありません。)

一般的には以下のような記述が多いかと思います。

上記を設定することで,「ORCL」という名前のデータベース情報を定義することができます。

リスナー制御

リスナーはリスナー制御ユーティリティ(lsnrctl)にて制御できます。

制御にあたり,事前に環境変数の$PATHへ「$ORACLE_HOME/bin」を設定しておきましょう。

構文は以下の通りです。

いくつかあるコマンドの中で,最低限以下を抑えておけば問題ないと思います。

コマンド解説
start

リスナーを起動する。

stop

リスナーを停止する。

status

リスナーの状態を表示する。

services

リスナーの状態を詳細に表示する。

イツキ

「[リスナー名]」は,標準名の「LISTENER」であれば省略可能だよ!

まとめ

今回はOracleNet設定において,データベース接続との懸け橋となるリスナー設定について説明しました。

本設定を実施することで,クライアントから初めてOracleへ接続することができるようになります。

役割や設定方法を理解して,いろいろと応用できるようにしてみてください!

  1. 「Transmission Control Protocol」の略。通信する際の決まり事の一種で,信頼性は高いが転送速度がやや遅い特徴がある。 ↩︎
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

Author

               
イツキのアバター
イツキ
               

24年度からITフリーランスとして事業開始。インフラエンジニアとして,サーバ設計・構築やミドルウェアの設計・構築に従事。

本業の傍らで,仕事だけでなく日常生活でも役立つPCに関する様々な情報を発信中!                

目次