sqlplusから直接繋ぐだけでは管理作業しかできないので、 DBサーバとしてネットワーク経由で接続できるようにします。
$ORACLE_HOME/network/admin/ 以下のファイルを設定します。
samples/ にサンプルがあるので、 必要に応じてコピーして使います。
リスナーの定義(LISTENER)と、 そこからディスパッチするインスタンス(SID_LIST_LISTENER)を書きます。
動的にインスタンスを登録することもできますが、 このように明示的に定義することもできます。
#pre{{ [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)))
}}
Oracleの世界での名前解決方法を書きます。
ここでは orcl という名前でつながるというような定義を書いています。
#pre{{ [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ユーザで接続できるようにするため、 パスワードファイルを作成しておきます。
#pre{{ [oracle@ora1 ~]$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle }}
lsnrctlコマンドを使います。
#pre{{ [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で定義したサービスに正しく届いているかどうかが確認できます。
(出力は改行しています)
#pre{{ [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 で接続することもできます。
#pre{{ [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> }}
ほかにも接続は奥が深いです。 例によってマニュアルに詳しく載っているので 参考にしましょう。