質問

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;

この手順を使用してこの問題を解決しました。

まず第一に、同じディレクトリまたはドライブをインストールしなかった場合、このエラーが発生します。

しかし、答えはここにあります。

  1. 管理者としてウィンドウにログインします。
  2. コントロールパネルに移動します。
  3. 「システムのプロパティ」をクリックし、「環境」をクリックします。
  4. OS 変数を見つけて、名前を「TNS_ADMIN」に変更します。

    enter image description here

  5. そして、値を「tnsnamesのディレクトリアドレス」として変更します。enter image description here

  6. システムを再起動します。

  7. おめでとうございます。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top