2012-02-28 17:15:05 (Tue);
ORA-12514: TNS: リスナーは接続記述子で要求されたサービスを現在認識していません。
データベースに繋がらないよー、
リスナーに繋がらないよーのエラー。
そもそもデータベースが起動していないのか、
それともリスナーの構成がおかしいのかを確認する。
まずリスナーを利用しないでDB接続してみます。
DBサーバーに、
Oracleをインストールしたユーザ
(
Windowsならora_ndbグループに属しているユーザでもよい)で接続し、
コマンドプロンプトから以下を実行
SET ORACLE_SID=<SID>
sqlplus /nolog
conn / as sysdba
select instance_name from v$instance;
上記で目的のインスタンスに正しく接続できる場合は、
データベースは正しく動いています。
続いてリスナーの状態を確認してみます。
コマンドプロンプトから実行
lsnrctl status
(略)
サービス"****"には、1件のインスタンスがあります。
インスタンス"****"、状態Readyには、このサービスに対する1件のハンドラがあります...
接続したいデータベースの状態がReadyになっているか確認。
もしくはそもそも表示されるかどうか。
リスナーの構成を確認してみます。
lsnrctl statusで
接続したいデータベースがそもそも表示されない場合は、
リスナーの構成によって以下を確認してください。
リスナーが動的登録(自動登録)である場合は、
データベースを一度shutdown immediate ⇒ startup してみます。
そして lsnrctl status を再実行
リスナーが静的登録である場合は、
listener.ora の内容を確認し、記述ミスが無いか確認します。
動的か静的を見分けるのはgoogleしてください。
ざっくりと言うと、listener.ora にSIDで設定がされていれば静的。
されていなければ動的(インスタンス起動時に自動読み込み)。
tnsnames.oraの設定を確認してみます。
lsnrctl statusで
接続したいデータベースがReadyになっている場合は、
リスナーは正しく起動している、、っぽいです。
tnsnames.oraの設定を見直してみます。
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.21.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = service_name)
)
)
HOST、PORT(リスナー待ち受けポート)、SERVICE_NAMEが
本当に、本当に正しいかを確認します。
特にSERVICE_NAMEは間違えやすいので注意。
グローバル・データベース名(インスタンス名.ドメイン名)です。
SERVICE_NAMEの調べ方はgoogleしてみてください。
最終更新:2012年02月28日 17:15