8

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)
    )
  )

MY 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
4

8 に答える 8

7

この問題の答えは非常に簡単です。.ora ファイルやその他の構成について心配する必要はありません。オラクルはこれらすべてを完璧に実行します。

コマンドライン経由で接続している間のみ、@ 記号が含まれるパスワードと混同されます。

したがって、コマンド ライン SQL を介して接続するときは、'@' を含むパスワードを使用しないでください。Web インターフェイスを使用して、「@」記号を含まないパスワードを持つアカウントを作成するだけです。

あれは!!問題が解決しました。私はかなりの数日間頭を悩ませていましたが、今では問題が解決しました!!

于 2014-01-24T04:46:43.043 に答える
4

ud06 に正常に ping できますか (ud06.us.server.com ではなく ud06 として)?

コマンドは何をしますか

lsnrctl services

見せる?

編集:データベースインスタンス名が実際には「orcl」ではないのではないでしょうか? lsnrctl サービスの出力からわかることは、「orcl」サービスは、listener.ora ファイルで定義されていますが、実際には実行されていないということです。

サーバーに直接接続してログオンできますか? その場合、ORACLE_SID 環境変数の値として何を使用しますか? SYS ユーザーとしてログインし、次のコマンドを発行します。

システムレジスタを変更します。

次に、lsnrctl services コマンドを再度発行して、追加のインスタンスが表示されないかどうかを確認します。

また、Alex が指摘しているように、tnsping コマンドは完全修飾サービス名を報告しています。sqlnet.ora ファイルを編集し、値がある場合は NAMES.DEFAULT_DOMAIN 値を NULL に設定します。

編集 2:サーバー上のtnsping ud06 は機能しますか? それとも、クライアントとサーバーが異なるシステム上にあるという私の仮定は間違っていますか?

于 2010-02-18T04:46:41.697 に答える
1

出力のSERVICE_NAMEtnspingのエントリと一致しませんtnsnames.ora。そのファイルは Windows ボックスまたは Linux ボックスからのものですか? ローカル (Windows)tnsnames.oraエントリがないようでu06、それを拡張するサービス名を推測しています。それが、ホスト名アダプタへの参照の意味だと思います。

于 2010-02-18T08:38:12.633 に答える
0

まず、Oracle インスタンスが開始されているかどうかを試してください。

Windows の場合:

開始->構成パネル->管理ツール->サービス->ORACLESERVICEORCL(ちなみに私のインスタンス)->開始

于 2014-02-05T09:49:40.323 に答える
0

次のような接続文字列を指定します。

サーバー名:ポート/サービス名;ユーザー名;パスワード

接続イメージを追加

于 2016-03-25T12:28:08.943 に答える