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 = にする
# )
# )
そもそも、私が SID
と SERVICE NAME
の違いを正確に認識していないことが問題なのであるが…。