[ORACLE]ORA-12514:TNS 指定された接続識別子を解決できませんでした のエラー対処法

投稿日:

ORA-12514

ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor

だけ見ても分かりづらいけど、ORACLEサービス名がリスナーに登録されていない場合に発生するエラーとの事。

発生状況

客先で発生。

始業後1時間ほど経ったタイミングで障害発生の一報がありました。

システムがDBに接続できずに作業できないとの事。

その時点で確認したことは、

  • 他のネットワーク機器は問題ないか?
  • PC再起動したか?
  • その他の、DB接続可能なアプリケーションでは接続可能か?

上記の3点。

この時点で、もう1個確認しておけば割とあっさり解決してたんですが、そこまで考えが至らず・・・

他のネットワーク機器は問題ないか?

まぁ、定番っちゃ定番だと思う。

そもそもDBはローカル環境に構築してあるとはいえ、他のネットワーク機器に接続できないんじゃ、それはそれで問題なので。

ただ、ネットワークドライブをはじめ、社内ポータルとかは接続できる様子。

PC再起動したか?

PC起動直後だと、サービスが立ち上がりきってなくて、ORACLEが使えないという状況も考えられたんだけど、この時点で、起動してから1時間以上は経過しているとの事。

ここで可能性を切り捨ててしまった・・・

その他の、DB接続可能なアプリケーションでは接続可能か?

DB接続を試してもらうも、エラーとなる。

エラーは、ORA-12514

リスナーの起動とか調べる

このエラーの調査で定番なのは、そもそもリスナーが起動しているかどうか?

リスナーが起動していなかったら、このエラーになる・・・と。

ということで、とりあえず、リスナーの調査。

コマンドプロンプトで、下記コマンドを入力。

lsnrctl status (サービス名)

パスが登録されてなくて、エイリアスで通じない場合は、直接ORACLE_HOMEまで移動して実行します。

ORACLE_HOMEってなんぞや?って場合は、次の章ORACLE_HOMEの調べ方で確認します。

リスナーが起動していれば、こんな感じで何らかの反応がある。

当然ながら、適当なリスナー名では、サービス名が見つかりませんと帰ってくるだけですw

ORACLE_HOMEの調べ方

他にもあるんだけど、手っ取り早いのはsetコマンド。

コマンドプロンプトで

set

と入力。

その中で、多分「Path=」で始まる部分があるので、そこからORACLEという文字を見つけます。

要は環境変数なので、環境変数プロパティ画面から確認しても良いんだけど、多分見づらいので、こちらがいいと思う。

コマンドプロンプトの画面上で見つけづらい場合は、

set > set_list.txt

とかやって、テキストに吐き出して検索する。

SQL*Plusにログインしてコマンドで確認も出来るんだけど、そもそも今回の事態では、ORACLEへログインすら出来ない状態なので、使えない・・・

色々準備したけど、サービスが立ち上がっていないだけだった

結論は、ORACLEサービスが起動していなかったのが原因でした。

リモート環境での調査が出来ないところなので、電話口での説明で作業してもらうしかない状態だったので、リスナーの確認方法とか、ORACLE_HOMEの資料を準備して、PC操作に不慣れな人でも出来るように用意したんですが、そもそもサービスが起動していないことが判明して苦笑いw

PC再起動したか?

PC起動直後だと、サービスが立ち上がりきってなくて、ORACLEが使えないという状況も考えられたんだけど、この時点で、起動してから1時間以上は経過しているとの事。

ここで可能性を切り捨ててしまった・・・

先に書いたとおり、この時点で可能性を切り捨ててしまっていたのが痛かった。

少なくても1時間以上経ってるんだから大丈夫だろうっていう思い込み。

それに加え、エラー内容を鵜呑みにしてしまったことが敗因・・・

念のためでもいいから、サービスの確認も先にやれていれば・・・と悔やまれる。


							







-ORACLE
-,

関連記事

SQL文中で全角文字を使うなと言われたので、ORACLEでJOIN句の条件式をCASE文で分岐させる

JOINの条件式にCase文を入れる http://blog.goo.ne.jp/ilikehobby/e/80b471f96f6d693b6c5df75f18591c0e SQL文中で全角文字を使う …

[ORACLE]ORA-00918:列の定義が未確定です・・・のエラーにならなかった

なんでエラーになるものをマージしてるんだ? と、怒られました。 一瞬、理解が出来ず・・・ で、エラーを再現してもらう・・・と。 あっさり発生。 早く修正しろって突っ返されました。 頭には「?」しか浮か …

[Oracle]長文SQLをWITH句を使って、SQLの繰り返しをまとめる

自分、WITH句アレルギーです\(^o^)/ 今でこそ、使うようになりましたが、最初は拒否反応バリバリでした。 だって、WITH句で何ができるのか良く分からなかったからです。 VIEWのように使えるか …

no image

Oracleの再受験無料キャンペーンは5月31日まで

【ピアソンVUE専用】Oracle会場試験用受験チケット(電子チケット) 価格:26,720円 (2019/5/19 14:11時点) 感想(15件) 【ピアソンVUE専用】Oracleオンライン試験 …

[ORACLE]SQLのIN句にパラメータを適用する方法

カンマ区切りの文字列を取得した理由 こないだの続きです。 日本の中心付近で仕様変更と闘うSE日記[C#]リストをカンマ区切りの文字列で出力するhttp://ht-jp.net/blog/pc/c/c- …


カテゴリー