web-dev-qa-db-ja.com

Oracle lsnrctl TNS-12545:ターゲットホストまたはオブジェクトが存在しないため、接続に失敗しました

Oracleデータベースに接続しようとしています。リスナーを開始できません。これが私が試したものです。

$ lsnrctl start

 LSNRCTL for Linux:バージョン10.2.0.4.0-Production on 20-JAN-2012 08:19:58 
 
 Copyright(c)1991、2007、Oracle。 All rights reserved。
 
/u01/app/Oracle/product/10.2.0/db_1/bin/tnslsnrを開始しています:お待ちください... 
 
 TNSLSNR Linuxの場合:バージョン10.2.0.4.0-Production 
 /u01/app/Oracle/product/10.2.0/db_1/network/log/listener.log
に書き込まれたログメッセージ:(ADDRESS =(PROTOCOL = tcp)(Host =)(PORT = 1521))
 TNS-12545:ターゲットホストまたはオブジェクトが存在しないため、接続に失敗しました
 TNS-12560:TNS:protocolアダプタエラー
 TNS-00515:ターゲットのホストまたはオブジェクトが存在しないため、接続に失敗しました

$ cat ./admin/tnsnames.ora

 
#TNSNAMES.ORAネットワーク構成ファイル:
#/u01/app/Oracle/product/10.2.0/db_1/network/admin/tnsnames.ora 
#
 
 EXTPROC_CONNECTION_DATA.test = 
(DESCRIPTION = 
(ADDRESS_LIST = 
(ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC)))
)
(CONNECT_DATA = 
(SID = DEVDB)
(PRESENTATION = RO)
)
)
 
 DEVDB = 
(DESCRIPTION = 
(ADDRESS_LIST = 
(ADDRESS =(PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
) 
(CONNECT_DATA = 
(SERVICE_NAME = DEVDB.test)
)
)
 
 DEBDB.test = 
(DESCRIPTION = 
(ADDRESS_LIST = 
(ADDRESS =(PROTOCOL = TCP)(Host = DEVDB.test)(PORT = 1521))
)
( CONNECT_DATA = 
(SERVICE_NAME = DEVDB.test)
)
)

$ホスト名
テスト

以下は、同様の設定で他のマシンで正常に起動する例です。 listner.oraファイルはtnsnames.oraだけではありません。

 $ lsnrctl start 
 
 LSNRCTL for Linux:バージョン10.2.0.4.0-Production on 20-JAN-2012 11:38:51 
 
 Copyright(c)1991、2007、Oracle。 All rights reserved。
 
/u01/app/Oracle/product/10.2.0/db_1/bin/tnslsnrを開始しています:お待ちください... 
 
 TNSLSNR Linuxの場合:バージョン10.2.0.4.0-Production 
 /u01/app/Oracle/product/10.2.0/db_1/network/log/listener.log
に書き込まれたログメッセージ: (DESCRIPTION =(ADDRESS =(PROTOCOL = tcp)(Host = oracletest)(PORT = 1521))))
 
(ADDRESS =(PROTOCOL = tcp)(Host =)(PORT = 1521))
リスナーのステータス
 ------------------------ 
エイリアスリスナー
バージョンTNSLSNR for Linux:バージョン10.2.0.4.0-製品版
開始日20-JAN-2012 11:38:51 
稼働時間0日0時間。 0分0秒
トレースレベルオフ
セキュリティオン:ローカルOS認証
 SNMPオフ
リスナーログファイル/u01/app/Oracle/product/10.2.0/db_1 /network/log/listener.log
リスニングエンドポイントの概要... 
(DESCRIPTION =(ADDRESS =(PROTOCOL = tcp)(Host = oracletest)(PORT = 1521)))
リスナーはサービスをサポートしていません
コマンドは正常に完了しました
4
nelaaro

Listener.oraに空の_Host=_があります。 _Host=my.ip.address_になるように編集します。アプリケーションが同じホスト上にある場合は、_Host=127.0.0.1_でも実行できます。以前にnetcaを適切に実行しましたか(初心者にお勧めします)?

3
kubanczyk

$ vim/etc/hosts

から行を変更

127.0.0.1 localhost.localdomain localhost

127.0.0.1 test localhost.localdomain localhost

 cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=test

$ホスト名
テスト

 $ lsnrctl start 
 
 LSNRCTL for Linux:バージョン10.2.0.4.0-Production on 20-JAN-2012 10:08:54 
 
 Copyright(c)1991、2007、Oracle。 All rights reserved。
 
/u01/app/Oracle/product/10.2.0/db_1/bin/tnslsnrを開始しています:お待ちください... 
 
 TNSLSNR Linuxの場合:バージョン10.2.0.4.0-Production 
 /u01/app/Oracle/product/10.2.0/db_1/network/log/listener.log
に書き込まれたログメッセージ: (DESCRIPTION =(ADDRESS =(PROTOCOL = tcp)(Host = test)(PORT = 1521)))
 
(ADDRESS =(PROTOCOL = tcp)(Host =)(PORT = 1521))
リスナーのステータス
 ------------------------ 
エイリアスリスナー
バージョンTNSLSNR for Linux:バージョン10.2.0.4.0-製品版
開始日20-JAN-2012 10:08:55 
稼働時間0日0時間。 0分0秒
トレースレベルオフ
セキュリティオン:ローカルOS認証
 SNMPオフ
リスナーログファイル/u01/app/Oracle/product/10.2.0/db_1 /network/log/listener.log
リスニングエンドポイントの要約... 
(DESCRIPTION =(ADDRESS =(PROTOCOL = tcp)(Host = test)(PORT = 1521)))
リスナーはサービスをサポートしていません
コマンドは正常に完了しました
0
nelaaro