技術文書/Oracle/11g/ネットワークの設定
Last-modified: Sat, 29 Jan 2011 15:27:48 JST (4389d)
概要 

sqlplusから直接繋ぐだけでは管理作業しかできないので、 DBサーバとしてネットワーク経由で接続できるようにします。
$ORACLE_HOME/network/admin/ 以下のファイルを設定します。
samples/ にサンプルがあるので、 必要に応じてコピーして使います。
リスナーの設定 (listener.ora) 

リスナーの定義(LISTENER)と、 そこからディスパッチするインスタンス(SID_LIST_LISTENER)を書きます。
動的にインスタンスを登録することもできますが、 このように明示的に定義することもできます。
[oracle@ora1 ~]$ cat $ORACLE_HOME/network/admin/listener.ora LISTENER = (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)) (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))) SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=orcl) (SID_NAME=orcl) (ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1)))
クライアントの設定 (tnsnames.ora) 

Oracleの世界での名前解決方法を書きます。
ここでは orcl という名前でつながるというような定義を書いています。
[oracle@ora1 ~]$ cat $ORACLE_HOME/network/admin/tnsnames.ora orcl= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.221)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=orcl)))
たとえば RAC の場合では複数のアドレスにロードバランスすることや、 識別子をサービスごとに定義するなどの方法が よく使われています。 シングルインスタンスでも、テスト用のサーバと本番用のサーバで繋ぐ先を変えるということもあるかもしれません。
パスワードファイルの作成 

SYSユーザで接続できるようにするため、 パスワードファイルを作成しておきます。
[oracle@ora1 ~]$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle
リスナーの起動 

lsnrctlコマンドを使います。
[oracle@ora1 ~]$ lsnrctl start LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 15-8月 -2008 17:14:23 Copyright (c) 1991, 2007, Oracle. All rights reserved. ... リスニング・エンドポイントのサマリー... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora1)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))) サービスのサマリー... サービス"orcl"には、1件のインスタンスがあります。 インスタンス"orcl"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります... コマンドは正常に終了しました。
動作確認 

tnspingを使うことで、tnsnames.oraで定義した名前で listener.oraで定義したサービスに正しく届いているかどうかが確認できます。
(出力は改行しています)
[oracle@ora1 ~]$ tnsping orcl TNS Ping Utility for Linux: Version 11.1.0.6.0 - Production on 15-8月 -2008 17:16:58 Copyright (c) 1997, 2007, Oracle. All rights reserved. パラメータ・ファイルを使用しました: エイリアスを解決するためにTNSNAMESアダプタを使用しました。 Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.221)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=orcl))) OK (10ミリ秒)
もちろん sqlplus で接続することもできます。
[oracle@ora1 ~]$ sqlplus sys/oracle@orcl as sysdba SQL*Plus: Release 11.1.0.6.0 - Production on 金 8月 15 17:18:20 2008 Copyright (c) 1982, 2007, Oracle. All rights reserved. Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options に接続されました。 SQL>
参考文献 

ほかにも接続は奥が深いです。 例によってマニュアルに詳しく載っているので 参考にしましょう。