トップ > DBA入門 > 10章
10章 Oracleネットワーク管理

Oracleデータベースへの接続の種類


本章ではOracleのネットワークについて学んでいきます。

データベースの接続するには何らかのアプリケーションが必要です。
例えばSQL*Plusはデータベースに接続するためのツールです。

今回はSQL*Plusを使用した接続方法についてご紹介していきます。
SQL*Plusを使用したデータベースの接続方法は以下の方法です。

・パスワード認証
・OS認証

パスワード認証はもうお馴染みですが、
パスワードを入力しログインする方法です。

DBの接続(パスワード認証)
 $ sqlplus ユーザ名/パスワード [ as sysdba ]

続いてOS認証はOSのDBAグループに属するユーザであれば、
パスワードは不要でログインできる方法です。

DBの接続(OS認証)
 $ sqlplus / [ as sysdba ]

一般ユーザのOS認証はあまり馴染みのないものかもしれませんが、
管理者ユーザでの接続方法はお馴染みの接続方法ですね。

上記の2つの接続方法で今までログインしてきましたが、
上記の場合はデータベースがサーバ上に存在する時のみ可能です。

データベースがリモートに存在する場合、
ネットワークを介して接続する必要があります。

クライアントサーバ接続

リスナーを経由したネットワーク接続


リモートからデータベースに接続する場合、
リスナーを経由して接続する必要があります。

リスナーはデータベースの新規接続を確立するプロセスです。
デフォルトでは1521のポートを使用します。

リスナー

上記のポイントは接続が完了するとSQLの処理は
直接サーバプロセスと行われるため、リスナーが停止しても正常に
SQLは処理されます。リスナーが停止している場合、新規接続はできなくなります。
リモートからデータベースへ接続する方法は以下の方法があります。

Oracleのネットワーク接続方法


ではデータベースの接続方法を確認していきましょう。
ネットワークを使用したデータベースの接続方法は以下の通りです。

・簡易接続ネーミング
・ローカルネーミング接続
・ディレクトリネーミング
・外部ネーミング

上記の方法を使用してデータベースに接続することができます。
ディレクトリネーミングはLDAPなどのディレクトリサービスを使用した接続で
外部ネーミングは別のソフトを使用した認証方法です。

今回は簡易接続ネーミングとローカルネーミング接続をご紹介していきます。
データベースに接続するために必要な情報はどのようなものがあるのでしょうか。

・データベース名(サービス名)
・DBサーバのIPアドレス
・リスナーのポート番号

データベースに接続するにはデータベース名、IPアドレス、
リスナーのポート番号だけあれば接続ができます。


簡易接続ネーミング


管理接続ネーミングはOracle10g以降のバージョンで可能になった接続方法です。
特徴は特に設定は不要でDBに必要な接続情報を指定して接続する方法です。

簡易接続ネーミング
 $ sqlplus ユーザ名/パスワード@IPアドレス:[ポート番号]/サービス名

リモートデータベースに接続する場合は、ユーザ名とパスワードの後ろに@を付けて、
データベース接続に必要な情報を記載します。
まずは接続するDBサーバのIPアドレスを指定します。
次にリスナーのポート番号です。デフォルトは1521となります。
次にサービス名はデータベース名を指定します。

では試してみましょう。

  $ sqlplus tom/tom@192.168.10.10:1521/orcl

  SQL*Plus: Release 12.1.0.1.0 Production on XX XX X XX:XX:XX 2016

  Copyright (c) 1982, 2013, Oracle.  All rights reserved.

  Connected to:
  Oracle Database 11g Release 11.2.0.3.0 - 64bit Production

  SQL>
 

接続できました。こちらの接続方法が簡易接続となります。
簡易接続の場合、特別な設定は不要で必要な情報を記載すれば
簡単に接続できるメリットがあります。


ローカルネーミング接続


ローカルネーミング接続はtnsnames.oraファイルに
データベース接続に必要な情報を記載し、
その情報を別名で登録することにより、接続を簡素化する方法です。
このデータベース情報をファイルに記載することで、
簡単な名前を使用してログインすることができます。

ローカルネーミング接続
 $ sqlplus ユーザ名/パスワード@ネットサービス名

簡易接続ネーミングと比較すると記載が大分短くなりました。
ネットサービス名とはtnsnames.oraファイルに記載する
データベース情報の別名です。この様にデータベースに必要な
情報を毎回記載することなく、ネットサービス名を使用するので
簡単な記載でデータベースに接続することができます。

ではtnsnames.oraファイルの記載方法です。
ファイルは$ORACLE_HOME/network/adminに配置します。

[補足] 別ディレクトリへのTNSファイルの配置
 別の場所にtnsnames.oraファイルを
 配置したい場合はTNS_ADMIN環境変数に
 ファイルを格納するディレクトリを指定します。

ではtnsnames.oraファイルの記載例を確認してみましょう。

[tnsnames.oraファイルの記載例]
ORCL =
 ( DESCRIPTION =
  ( ADDRESS = (PROTOCOL = TCP)(HOST = linux01 )(PORT = 1521))
  ( CONNECT_DATA =
   ( SERVER = DEDICATED )
   ( SERVICE_NAME = orcl )
  )
 )

先頭のORCLがネットサービス名です。この名前をDB接続時に指定します。
その他tnsnames.oraを記載する際に必要なキーワードを確認していきましょう。

PROTOCOL 接続するプロトコルを指定します。
基本はTCPです。
HOST 接続するDBサーバのIPアドレスを
指定します。
PORT リスナーのポート番号を指定します。
SERVER 専用サーバもしくは共有サーバの
接続方法を指定します。
SERVICE_NAME 接続するデータベース名を
指定します。

SERVERというキーワードは初めて出てきましたが、
Bronzeの範囲外の内容である為、今回の説明は省略します。

tnsnames.oraの記載は1文字でも間違えてしまうとエラーとなるので、
修正はNetManagerやNet Configuration Assistantなどの
GUIツールを使用してください。

NetManagerの起動方法

 $ netmgr
 

Net Configuration Assistantの起動方法

 $ netca
 

ツールの使用方法は今回は省略します。
使い方は難しくないので、実際に試してみてください。

本章は以上となります。次回はリスナーについてご紹介していきます。