【Oracle】OracleNetの共有設定をしよう

今回はOracleNetの共有方法について紹介します。

通常,Oracleでは1つのデータベースに対して1組のOracleNet定義ファイル1を作成する必要があります。



少数なら良いかもしれませんが,DBが複数あると管理も煩雑になりがちです。

そこで,今回紹介する設定を実施することで,OracleNet定義ファイルを1組に集約することができます。

ぜひとも参考にしていただけたら幸甚です。

目次

設定方法

前提

例として,以下の3DB(≒3種類のインスタンス)を作成する体にします。

  • ORCL
  • SCBT
  • DCTR

なお,集約先は「ORCL」として話を進めます。

設定方法

環境変数として${TNS_ADMIN}を設定します。

環境変数説明
  • TNS_ADMIN
    OracleNet定義ファイルの格納先を定義する環境変数。
    設定は任意。

デフォルトだと,OracleNet定義ファイル格納先は(各DBの)${ORACLE_HOME}/network/adminです。

何も設定していなければ,デフォルトの格納場所にあるOracleNet定義ファイルを参照してOracleへ接続します。

もしOracleNet定義ファイル格納先を変更する場合は,${TNS_ADMIN}を設定します。

今回の例では,「ORCL」においては設定する必要ありません。

イツキ

意図をもった設定であることを示すために,あえて設定しても良いと思うよ!

「SCBT」と「DCTR」に(「ORCL」の)${ORACLE_HOME}/network/adminを設定することで,「ORCL」のOracleNet定義ファイルへ集約ができます。

なお,設定に際しては以下の注意点があります。

注意点
  • DBCA2にてDBを作成する前に,あらかじめ${TNS_ADMIN}を設定しておくこと。
    あらかじめ設定することで,DBCAが${TNS_ADMIN}の設定を読み取ってくれます。

  • 集約先のOracleNet定義ファイルに書き込めるよう,権限を見直す(777にする等)こと。
    DBを作成するユーザに対して適切な権限を付与しないと,OracleNet定義ファイルに定義できません。

まとめ

今回はOracleNetの共有方法について紹介しました。

本設定を実施することにより,1つのリスナーのみで全DBとの接続を確立することも可能となります。

ハヤト

つまり,仮にリスナーに障害が起きると?(汗)

イツキ

お察しの通り,クライアントからは全DBへ接続できなくなるね(汗)

難点はあるものの,DB管理を容易にするうえで知っておいて損は無いかと思います。

それぞれの利点・難点を踏まえたうえで,管理方法を決めていただければ幸甚です。


  1. 「listener.ora」,「sqlnet.ora」,「tnsnames.ora」のこと。 ↩︎
  2. 「DataBase Configuration Assistant」の略。Oracleのデータベース本体を作成する際に使用する。 ↩︎
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

Author

               
イツキのアバター
イツキ
               

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

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

目次