概要

sqlplusから直接繋ぐだけでは管理作業しかできないので、 DBサーバとしてネットワーク経由で接続できるようにします。

$ORACLE_HOME/network/admin/ 以下のファイルを設定します。

samples/ にサンプルがあるので、 必要に応じてコピーして使います。

リスナーの設定 (listener.ora)

リスナーの定義(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)))

}}

クライアントの設定 (tnsnames.ora)

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> }}

参考文献

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



トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-01-29 (土) 15:27:48