ORA-12154:TNS:指定された接続識別子を解決できませんでした
質問
Linux EL 5 にインストールされている oracle 11g に接続しようとすると、次のエラーが表示されます。
SQL> connect sys/password@ud06 as sysdba
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
network/admin の下の私のlistener.oraは次のとおりです
LISTENER=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=ud06)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=extproc))))
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=orcl)
(ORACLE_HOME=/home/oracle/app/oracle/product/11g)
(SID_NAME=orcl))
(SID_DESC=
(SID_NAME=plsextproc)
(ORACLE_HOME=/home/oracle/app/oracle/product/11g)
(PROGRAM=extproc)))
私のtnsnames.oraは次のとおりです
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
UD06=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ud06)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
私の lsnrctl ステータスは次のように表示されます。
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ud06.us.server.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 17-FEB-2010 16:23:06
Uptime 0 days 0 hr. 12 min. 33 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /home/oracle/app/oracle/product/11g/network/admin/listener.ora
Listener Log File /home/oracle/app/oracle/product/11g/log/diag/tnslsnr/ud06/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ud06.us.server.com)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))
Services Summary...
Service "orcl" has 1 instance(s).
Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
Service "plsextproc" has 1 instance(s).
Instance "plsextproc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
解決
あなたは成功しud06 pingでき(ud06として、ないud06.us.server.com)?
コマンドは
何lsnrctl services
ショー?
編集: それはおそらく、データベースのインスタンス名は、実際に「ORCL」ではないように私に聞こえますか?何LSNRCTLサービスの出力が私に語ったことは、listener.oraファイルに定義されているものの、実際には「ORCL」サービスという実行されていないされます。
は、サーバーに直接接続してログオンすることはできますか?その場合は、ORACLE_SID環境変数の値として何を使うのですか?
:SYSユーザーとコマンドを発行としてログインALTER SYSTEM REGISTER;
次にLSNRCTLサービスを再度コマンドを発行し、追加のインスタンスが表示されないかどうかを確認します。
アレックスが指摘するように、また、TNSPINGコマンドは、完全修飾サービス名を報告しています。編集sqlnet.oraファイルと、それが値を持っている場合は、NULLにNAMES.DEFAULT_DOMAINの値を設定します。
EDIT 2:んTNSPING ud06 のサーバーの仕事に?またはクライアントとサーバーが異なるシステムの間違ったであるというのが私の仮定のですか?
他のヒント
は、この問題への答えは非常に簡単です。 .oraのファイルまたは任意の他の構成については心配しないでください。 Oracleは、これらすべて完璧を行います。
はのみ、コマンドラインを介して接続している間、それは彼らに@記号を持っているパスワードと混同されます。
は、コマンドラインのSQLを介して接続するためながら、その中に「@」とパスワードを使用しないでください。ただ、その中に「@」記号なしでパスワードを持つアカウントを作成するには、Webインターフェイスを使用します。
それはです!問題が解決しました。私はかなりの数日間私の頭を破壊されていた、そして今、私の問題が解決される!!
SERVICE_NAME
内のエントリと一致しないtnsping
出力でtnsnames.ora
。 WindowsのボックスからそのファイルまたはLinuxボックスがありますか?あなたはtnsnames.ora
のローカル(Windowsの場合)u06
エントリを持っていないと、サービス名は、それを拡大すべきか推測だように見えます - 。私はそれがホスト名アダプタ手段にどのような言及だと思います。
私はまた、ORA-12154に遭遇:TNS:接続識別子を解決できませんでしたが、指定され、Oracleのoinstallグループに接続しようとするユーザーを追加する
それを修正しました。Oracleインスタンスが起動されているかどうかを最初の試みます:
Windows用の
スタート - >設定パネル - >管理touls->サービス - > OracleServiceORCLが(ちなみに私のインスタンス) - >スタート
このような接続文字列を提供します:
サーバー名:ポート/ ServiceNameは、ユーザー名、パスワード
私も同じエラーに直面していた、このコードを試してみます:
SQL> conn hr/hr @pdborcl;
と同じエラーを見つけた場合、それはあなたが別のプラグイン可能なデータベース名を有することを意味します。
ちょうどsqlplus
で次のコマンドを書き込むことにより、プラグ可能なデータベース名を確認してください。
sql> SELECT name, con_id FROM v$pdbs;