投稿カテゴリ整理中。ご迷惑をおかけします。

【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

               
イツキのアバター
イツキ
               

ITインフラ分野における実務経験をもとに,技術情報の発信・著述活動を行っています。

24年度よりITフリーランスとして事業を開始し,インフラエンジニアとして設計・構築・運用改善(自動化)に従事する一方で, 専門的な知見を活かした技術解説記事の執筆を継続。

ITインフラや業務効率化等の分野において,実務に役立つ情報やITリテラシー向上に資するコンテンツを発信中!                

目次