とあるプログラマの備忘録

都内某所に住むプログラマが自分用に備忘録を残すという趣旨のブログです。はてなダイアリーから移動しました!

Oracle clientの導入

こうゆう導入時の設定って、次回やるときに必ずはまるんですよね。
今日たまたま導入する機会があったので、覚書。

ここで間違っちゃいけないのが、これはクライアント側の設定って事ですよ?
サーバ側の設定は listener.ora
クライアント側の設定は tnsnames.ora
です。



※前提条件
・サーバのOracleは立ち上がっていること
・サーバのリスナが起動していること
・サーバのlistener.oraが表示できること
・今回設定するのはクライアント側であること


では、早速。

1、いわれるがままにOracle Clientをインストール。(クライアント側)
 完了画面が出たらOK。
 
2、CMDを開く。(クライアント側)

 > tnsping [サーバのIP]

 で帰ってくるかを調べる。

OK (230ミリ秒)

 こんなんが最後の行に出ればOK。

3、クライアントの[C:\自分が設定した場所]\product\11.1.0\client_1\network\admin直下に移動、
 ※「Sample」というフォルダがある場所

4、そこにtnsnames.oraを作成。
 ※内容はこんな感じ

[①] =
  (DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = [②])(PORT = [③]))
  )
    (CONNECT_DATA =
    (SID = [④])
  )
)

①任意な名前SQLPLUSなどで接続時に使用する。
②サーバのIPアドレス(またはPC名)
③listener.oraに記述されているポートとあわせる。
④listener.oraに記述されているSID_NAMEにあわせる。

以上を保存

5、SQLPLUSを使いサーバに接続
例)アカウント名:test パスワード:testの場合。

ユーザ名を登録してください: test/test@[①]

①は4のtnsnames.oraで設定した①の名前

以上で接続されるはず。


****それでも接続されない場合

・アカウント、パスワードは間違ってませんか?
・tnsnames.oraの記述は間違っていませんか?
・サーバのリスナは起動していますか?
・OracleClientのインストールに失敗していませんか?


****知ってると得するコマンド

・サーバ側でSQLPLUSで接続できるか確かめる。コマンド(アカウント:test パスワード:test)

$sqlplus test/test

・サーバ側のリスナーが立ち上がっているか確認するコマンド

$lsnrctl service

環境変数を確認する

$env


なお、この記事を参考にOraclClientを設定した際に起きた損害、障害には一切の責任を負いかねます。
設定時は自己責任でお願いいたします。