Oracle OracleNet
目次
OracleNetとは?
クライアントとサーバ間通信を行うサービス
リスナー(サーバ側プロセス)が両者を仲介する
トラフィック負荷サービス:Oracle Connection Manager を別途インストール可能
リスナー
リスナーとは?
データベースがクライアントからの初期接続要求を受け付けるアプリケーション
リスナーは、クライアントからの要求を受け取った後、データベースへ要求を引き渡す。
→セッションが確立、保持される。
セッションが保持された後の通信はリスナーを介さないので、
リスナーが停止してもデータベースの使用に支障は無い。
データベース
↑
リスナー
↑
クライアント
以下のツールで設定可能
・ Oracle Enterprise Manager(ネットサービス管理)
・ Oracle Net Configuration Assistant
・ Oracle Net Manager
プロセス操作
EnterpriseManageによる起動・停止の他、コンソールより以下のコマンドで操作可能
コマンド | 結果 |
---|---|
lsnrctl start (リスナー名) | リスナープロセス起動 |
lsnrctl stop (リスナー名) | リスナープロセス停止 |
lsnrctl status (リスナー名) | リスナープロセス状態表示 |
lsnrctl srvices (リスナー名) | リスナープロセスサポートサービス表示 |
1つのサーバーに対して複数のリスナープロセスを起動できる
NetCA
Oracle Net Configuration Assistant
ネットワーク関連設定ツール
リスナーをインストールできる。
リスナー構成
Net Manager
・リスナーの構成
・ローカルネーミングメソッドの構成
tnsnames.oraの作成
※%ORACLE_HOME%\home\NETWORK\ADMIN (Windows)
※$ORACLE_HOME%\network\admin (Linux)
# tnsnames.ora Network Configuration File: ~\home\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
NETSERVICE_OFFICE-YONE = ←接続識別子(ネットサービス名)
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = service_officeyone)
)
)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ネーミングメソッド
クライアント → サーバ 接続の名前解決方法
NAMES.DIRECTORY_PATH = (TNSNAMES, HOSTNAME, EZCONNECT, LDAP, NIS, ONAMES)
ローカルネーミング
TNSNAMES
ホストネーミング
HOSTNAME
簡易接続ネーミング
EZCONNECT
ディレクトリネーミング
LDAP
外部ネーミング
NIS
Oracle Names
ONAMES
概要 | 設定ファイル | |
---|---|---|
ローカル | ローカル(クライアント)の設定ファイルで名前解決を行う方式 設定を変更する場合、全クライアントの設定ファイルを変更する必要がある > sqlplus ユーザ名/パスワード@接続識別子 > sqlplus user/password@TEST | tnsnames.ora |
LDAP対応のディレクトリサーバの設定ファイルで名前解決を行う方式 設定を変更する場合、1カ所の設定ファイルの変更で済む LDAP対応のディレクトリサーバ ・Microsoft:ActiveDirectory ・Oracle:InternetDirectory 等 LDAP |
||
事前にネットワーク構成が不要 クライアント~サーバ間がTCP/IP接続されている前提 > sqlplus user/password@ホスト名:ポート番号/サービス名 > sqlplus user/password@XXX.XXX.XXX.XXX:XXXX/XXXXX または > sqlplus user/password@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=XXX)(HOST=XXXXX)(PORT=XXXX)))(CONNECT_DATA=(SERVICE_NAME=XXXXX))) |
||
外部 | NIS(NewworkInformationService)等のネーミングサービスで名前解決を行う方式 |
ホスト | ホスト名を使用して接続 DNS、hostsファイルによってIPアドレス変換ができる事が前提 初期化パラメータ:SERVICE_NAMESでホスト名を指定 OR listener.oraファイル:GLOBAL_DBNAMEでホスト名を指定 |
listener.ora |
設定ファイル
一覧
ファイル名 | 内容 |
---|---|
tnsnames.ora | ローカルネーミングメソッド用プロファイル |
sqlnet.ora | OracleNetの構成ファイル |
listener.ora | リスナー構成ファイル |
tnsnames.ora
ローカルネーミングメソッドで接続する場合に使用するファイル
# tnsnames.ora Network Configuration File: C:\oracledatabase\home\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
TEST = ←接続識別子(ネットサービス名)
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = XXX)(HOST = XXXXX)(PORT = XXXX))
(ADDRESS = (PROTOCOL = XXX)(KEY = XXXXX))
)
(CONNECT_DATA =
(SERVER = XXXXX)
(SERVER = DEDICATED) 専用サーバ接続
(SERVER = SHARED) 共有サーバ接続
未指定 共有サーバ → 専用サーバ の順で接続
(SID = XXXXX)
(PRESENTATION = XXXXX)
(SERVICE_NAME = XXXXX)
)
)
sqlplus ユーザ名/パスワード@接続識別子
で接続可能
sqlnet.ora
NONE/ALL/NTSのいずれか
SQLNET.AUTHENTICATION_SERVICES = (~)
ネーミングメソッドの優先順位
NAMES.DIRECTORY_PATH = (TNSNAMES, HOSTNAME)
接続識別子にドメインが省略された場合のデフォルトドメイン
NAMES.DEFAULT_DOMAIN = mydomain
ローカルネーミング構成時
サーバ側に必要
非ローカルネーミング構成時
クライアントとサーバに必要
listener.ora
リスナー構成ファイル
LISTENER = XXXXX //:リスナー名
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = XXX)(HOST = XXXXX)(PORT = XXXX))
)
)
)
SID_LIST_LISTENER = XXXX //:接続先データベース
(SID_LIST =
(SID_DESC =
(SID_NAME = XXXXX)
(ORACLE_HOME = C:\XXXX\XXXX)
(PROGRAM = XXXXX)
)
(SID_DESC =
(GLOBAL_DBNAME = XXXXX)
(ORACLE_HOME = C:\XXXX\XXXX)
(SID_NAME = XXXXX)
)
)
LOGGING_LISTENER = ON[OFF]
LOG_FILE_LISTENER = listener.log
PASSWORDS_LISTENER = XXXXX
TRACE_FILE_LISTENER = listener.trc
TRACE_LEVEL_LISTENER = OFF