Oracle Master Bronze DBA10g 第4章

第4章はネットワークの構成について。

【ネットワークの構成】

  • ネットワークを介してOracleサーバーにアクセスするためには、Oracle Netを構成する必要がある([2]p.59)。
  • ネットワーク構成を管理できるのは、以下3つ([1]p.65)。
    • Oracle Enterprise Manager
      • Oracle Net Servicesを構成/管理するための統合環境を提供。
    • Oracle Net Manager
      • Oracleデータベースのリスニングプロトコルアドレスとサービス情報を構成。
      • ネーミングメソッドの構成、リスナーの作成、トレース情報の取得、ログ情報の取得などのネットワーク構成全般の設定が行えるGUIツール([2]p.62)。
        • サービスネーミングの設定情報はtnsnames.oraファイルに書き込まれる([2]p.53)。
    • Oracle Net Configration Assistant
      • GUIインターフェースを使用して、ローカルクライアント上、またはサーバーホスト上でOracleホームのOracle Net Servicesを構成。
  • Oracle Netの設定を行なう際に、sqlnet.ora、tnsnames.oraファイルの2つが、クライアント側で使用される([2]p.61)。

【リスナー】

  • リスナーとは、1つまたは複数のプロトコルを使って1つまたは複数のデータベースへの接続要求を解決するサーバー上のプロセス([1]p.376)。
  • クライアントからの接続要求を受信し、それをデータベースサーバに転送([1]p.65)。
    • 構成情報を格納するファイルはlistener.ora。
      • $ORACLE_HOME/network/adminに置かれる。
        • listener.oraファイルなどのネットワーク構成ファイルはここに置かれる。
    • デフォルトのポート番号は1521。
  • リスナーの起動・停止は、リスナー制御ユーティリティ、Oracle Enterprise ManagerのOracle Net Listenerの管理ページから行える([1]p.67)。

[リスナー制御ユーティリティ]

  • 「lsnrctr コマンド リスナー名」で実行。主なコマンドは以下([2]p.67)。
    • start::リスナーを起動
    • stop::リスナーを停止
    • services::リスナーに登録されたサービスやインスタンスなどの詳細情報を表示
    • status::リスナーの現在の基本的なステータス情報を表示
    • reload::リスナーを停止させずにサービスの変更などを行なうためにlistener.oraファイルを再読込する
    • change_password::暗号化パスワードを作成
    • save_config::listener.oraファイルのバックアップを作成し、コマンドで行なった変更をlistener.oraファイルに反映する

[Oracle Enterprise ManagerのOracle Net Listenerの管理ページ]

  • 実行出来る処理は以下([1]p.68)。
    • ローカルネーミングおよび、ディレクトリネーミングの構成
    • ディレクトリネーミングの検索
    • リスナーの構成・管理
      • リスナーの起動・停止
    • リスナー名、ローカルネーミングエントリおよびディレクトリネーミングのソート
    • tnsnames.oraファイルへのディレクトリネーミングエントリのエクスポート
  • リスナーが停止した状態でEMにアクセスした場合、ログインするためにはリスナー制御ユーティリティでリスナーを起動しなければいけない([2]p.57、65)。
  • EMを使用してリスナー操作に対してパスワードを設定した場合、そのパスワードは暗号化された状態でlistener.oraファイルに記録される([2]p.57、65)。

【ネーミングメソッド】

  • クライアントからOracleデータベースに接続するには、クライアント側のOracle Netを構成し、リスナーと接続できるようにしないといけない。
  • クライアント側は、接続文字列を入力して接続要求を開始する([1]p.73)。
  • 接続先のデータベースを指定するときに入力する文字列をネットサービス名という([1]p.368)。このネットサービス名を接続記述子に変換するために、クライアントアプリケーションによって使用される名前解決方法がネーミングメソッド([1]p.368)。
  • ⇒サーバーにアクセスしてよいクライアントかの識別??
    • Oracle Netでは以下のネーミングメソッドがある([2]p.60)。
      • 簡易接続ネーミング
        • 事前にネットワーク構成を行なう必要がない。この方法を使うためには、クライアント・サーバー間がTCP/IPを使用して接続されている必要がある。
        • 接続する際の構文は、CONNECT ユーザー名/パスワード@ホスト名:ポート番号/サービス名
      • ローカルネーミング
        • 名前解決にローカル(クライアント)側に配置するtnsnames.oraファイルを使用する。比較的簡単に構成できるが、ネットワーク構成の変更が多い環境ではメンテナンスコストが高いため向いてない。
        • Oracle Net Manager、EMのDatabase Controlの「ネット・サービス管理」ページからローカルネーミングの構成を行なうことができる([1]p.74)。
          • UnixLinuxの場合、Oracle Net Managerを起動するときのコマンドは、netmgr。
          • Net Managerを使用して構成した場合、「connect ユーザー名/パスワード@ネットサービス名」で接続要求を送信[2]p.64。
      • ディレクトリネーミング
        • 名前解決にディレクトリサーバーを使用する。名前解決情報を1カ所で集中させるため、ネットワーク構成の変更に関して柔軟に対応できる。
      • 外部ネーミング
        • Network Information Services(NIS)などのOracle以外のネーミングサービスを利用して名前解決を行なう。