Oracle 設定ファイル
Oracle は毎回、接続失敗で時間を無駄にしまくるので勉強してみた。
設定ファイル
正式には「Net 構成ファイル」と呼びます。
設定ファイルは "$ORAHOME/NETWORK/ADMIN/" に格納されており以下の3ファイルがある。
- listener.ora
- sqlnet.ora
- tnsnames.ora
クライアントとサーバー
上記のファイルはクライアントとサーバーに以下のように配置する。
- listener.ora …サーバーのみ。
- sqlnet.ora …サーバーとクライアント。
- tnsnames.ora …クライアントのみ。
tnsnames.ora
クライアントがサーバーを知るためのファイル。
hosts ファイルのようなもの。
いくつか設定がありますが注意すべきは最上位の項目と HOST エントリ。
最上位の項目は名称は何でも構わない。
外部から接続する際のデータソース名となる。
HOSTエントリは接続先のサーバーのホスト名かIPアドレスとなる。
以下が全体の記述例。
LOCALHOST = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521)) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )
sqlnet.ora
クライアントからサーバーを知る方法を決めるためのファイル。
この方法をOracleでは「ネーミングメソッド」と呼び、以下2つのネーミングメソッドがある。
- ローカルネーミングメソッド
- ホストネーミングメソッド
よく使うのはローカルネーミングメソッド。
以下が全体の記述例。
# SQLNET.AUTHENTICATION_SERVICES = (NTS) NAMES.DIRECTORY_PATH = (TNSNAMES)
listener.ora
サーバー側の待ち受けプロセスを設定するためのファイル。
LISTENER/DESCRIPTION_LIST/DESCRIPTION/ADDRESS/HOST に注意。
ここに前述の tnsnames.ora と同様にサーバーのホスト名またはIPアドレスを指定する。
以下が全体の記述例。
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) (ADDRESS = (PROTOCOL = TCP)(HOST = INSPIRON530S)(PORT = 1521)) ) ) DEFAULT_SERVICE_LISTENER = (XE)