LoginSignup
18
23

More than 5 years have passed since last update.

Oracle tnsnames.ora の書き方

Last updated at Posted at 2014-08-01

Oracleのtnsnames.oraの書き方で、いつもつまずく。

ERROR:
ORA-12514: TNS:
リスナーは接続記述子でリクエストされたサービスを現在認識していません

ローカル開発環境とサーバ開発環境が同じSID(SERVICE NAME)なので、TNS名によって接続先のDBを切り替えたい場合、何の違いであるかは不明であるが、SID 指定で接続できる場合と SERVICE_NAME 指定で接続できる場合があるようだ。今後理由を調査予定。

tnsnames.ora
# ローカル開発環境
ORADB_LOCAL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oradb)
    )
  )

# サーバ開発環境
ORADB_SERVER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = oradb)
    )
  )
# ORA-12514エラーになる記述
#ORADB_SERVER =
#  (DESCRIPTION =
#    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
#    (CONNECT_DATA =
#      (SERVER = DEDICATED)
#      (SERVICE_NAME= oradb) ##ここを SID = にする
#    )
#  )

そもそも、私が SIDSERVICE NAME の違いを正確に認識していないことが問題なのであるが…。

18
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
23