Oracle 起動に関するエラー
ORA-12154: TNS: 指定された接続識別子を解決できませんでした。
新規の設定で接続できない場合
原因
Net Service を設定した直後で ORA-12154: エラーが発生する場合は、どの段階で障害が発生しているかを切り分ける。
対応
ローカル・ネーミングメソッドの場合
Oracle 10g の場合には簡易接続で接続できるか確認する。
sqlplus user/pass@host[:port][/service_name]
接続できる場合 tnsnames.ora のネットサービス名の記述が誤っているか tnsnames.ora にアクセスできない状態が考えられる。tnsnames.ora ファイルがあるディレクトリにアクセス権があるかを確認する。
(デフォルト: $ORACLE_HOME/network/admin/tnsnames.ora, sqlnet.ora)
9i 以下の場合には TNSNAMES.ORA の ADDRESS 内の HOST= で記述してあるホスト名(or IPアドレス)に対して
ping hostname( or IPアドレス) でネットワークの接続を確認する。
通信できる場合にはさらに、tnsping 接続識別子(接続文字列) での TNS ネットワークの通信ポート導通を確認する。
ここまで動作確認が取れた場合には ネットサービス名の記述やつづりが誤っているケアレスミスの可能性が高い。 netca(ネットコンフィグアシスタント)や netmgr などでローカルネーミングの再作成を行なってみる。
解決できない場合には Net Manager を使い 「プロファイル」-「ネーミング」において使用しているメソッドが選択されているかも確認する。一般的なケースでは TNSCONNECT(=tnsnames.ora) と EZCONNECT (設定ファイル不要) が選択されている。
また、サービスネーミングにおいては ホスト名の部分「ホスト名」ではなく「IP アドレス」で記入してみて接続できるか確認する。
初回の接続テストはファイアウォールなどの別の要因を排除するためにも、
データベースサーバー上から Net Service (旧:Net8、SQL*Net) を経由した接続テストを行なうのが望ましい。
DB サーバー上で sqlplus username/password@netservicename
などを実行する。⇒ ※ netservicename ≠ service_name
急に接続できなくなった場合
リスナーの再起動 を行なっても接続できない場合などは環境変数の内容を確認する。
原因
今まで使用できていてかつ、設定ファイルの変更がない場合に ORA-12154:〜エラーが発生する場合には TNS_ADMIN 環境変数が設定されたか変更された可能性がある。
(TNS_ADMIN 環境変数は tnsnames.ora ファイルの存在するディレクトを指定する環境変数である。)
他にはファイアウォールのポリシー変更やファームウェア更新などを確認する。
対応
環境変数を確認し TNS_ADMIN 環境変数をクリアしてデフォルトディレクトリを参照するように変更するか、適切なディレクトリに再設定する。
対応
tnsnames.ora ファイルのデフォルト位置は ORACLE_HOME 環境変数に依存する。
適切なディレクトリに設定されていることも確認する。
類似するエラー
関連事項
一覧ページへ戻る
OTN (Oracle Technology Network)によるエラーメッセージによる情報だけでは、対処に困ったエラーについてのプラクティスです。
ベスト・プラクティスというわけではないので、書いてあることに固執しないで広い視野でエラー対応してください。