web-dev-qa-db-ja.com

Oracle SQL Developer:失敗-テストに失敗しました:ネットワークアダプターは接続を確立できませんでしたか?

問題

セキュリティのために詳細を変更したことに注意してください。ただし、問題はそのまま残ります。

たとえば、herp-devDV.derp.eduなどの場所にあるサーバーにOracle 11gデータベースをインストールしました。今、私は別のOracle 11gデータベースを場所にあるサーバー、たとえばderp-db.derp.eduに持っています。

Herp-devDV.derp.eduとderp-db.derp.eduの両方に対して、Oracle SQL開発者に接続名、ユーザー名、パスワード、ホスト名、サービス名を入力しました。 derp-db.derp.eduのスキーマに接続できますが、herp-devDV.derp.eduには接続できません。次のメッセージが表示されます。

Failure - Test failed: The Network Adapter could not establish the connection

詳細

次の情報があります。

  • Telnetを実行すると、どちらのサーバーでもポート1521が開かない
  • 私のリスナーは両方で稼働しています。
  • Oracle SQL Developerでderp-db.derp.eduにアクセスできます。
  • Oracleクライアントはローカルマシン+ Oracle SQL Developer上にあります
  • デスクトップを両方のサーバーにリモートできます

私がやった事

  • Googled
  • スタックオーバーフロー
  • Lnrctlコマンドの停止と開始を実行しました
  • Herp-devDB.derp.eduでlsnrctl statusを実行しました

次の出力を受け取りました

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
Start Date                03-JUN-2014 13:37:22
Uptime                    6 days 0 hr. 53 min. 4 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   D:\Oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
Listener Log File         d:\Oracle\diag\tnslsnr\HERP-DEVDB\listener\alert\log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=HERP-DEVDB.derp.edu)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "HERPDEVDBXDB" has 1 instance(s).
  Instance "herpdevdb", status READY, has 1 handler(s) for this service...
Service "herpdevdb" has 1 instance(s).
  Instance "herpdevdb", status READY, has 1 handler(s) for this service...
The command completed successfully

次に、listener.oraをチェックして見つけます

  SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (Oracle_HOME = D:\Oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(Host = HERP-DEVDB.derp.edu)(PORT = 1521))
    )
  )

この時点で、何も突き出ていないので頭を掻いていると告白し、なぜこれが機能しないのかを教えてくれます。

唯一の手がかりは、derp-db.derp.eduをチェックしてコマンドlsnrctl statusを実行することです。以下の抜粋をご覧ください。

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=DERP-DB.edu)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Production
Start Date                18-MAY-2014 02:19:01
Uptime                    22 days 12 hr. 23 min. 18 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
---etc----

だから私はまだ頭を掻いています。なぜderp-dbはDERP-DB.eduに接続しているのに、herp-devDBはEXTPROC1521に接続しているのですか?どうすれば修正できますか?これら2つのサーバー間のlistener.oraおよびその他のファイルは、インスタンスの名前を除いてほぼ同一です。うーん。

  • EDIT1: herpのlistener.oraを変更しました。これはそれを修正しませんでした。

  • EDIT2:ポート1521でderp-db.derp.eduにTelnetで接続できません。しかし、SQL Developerで接続できますか?え?

  • EDITポート1521でもherp-devdb.derp.eduにtelnetで接続できません。
  • EDIT4どちらのサーバーのIPアドレスにもpingできません。

とにかく支援をいただければ幸いです。ありがとう

よろしく、オタク

9
GeekyOmega

将来のコミュニティユーザーの利益のためにこれに答えています。複数の問題がありました。この問題が発生した場合は、次を探すことをお勧めします。

  • Tnsnames.oraが完全であり、接続するデータベースがあることを確認します
  • 接続するサーバーをtnspingできることを確認してください
  • サーバー上で、使用している特定のアプリケーションで必要なポートで開いていることを確認してください。

これらの3つのことをしたら、問題を解決しました。

13
GeekyOmega

同様の問題があり、同じエラーが継続的に発生しました。リスナーのポート番号の変更、ファイアウォールの無効化など、多くのことを試しました。最後に、listener.oraファイルを変更することで問題を解決することができました。次の行を変更しました。

(ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(Host = hostname)(PORT = 1521)) 

また、/etc/hostsファイルにエントリを追加しました。

oracle Net Managerを使用して、listener.oraファイルの上記の行を変更できます。ネットマネージャを使用して実行する方法の詳細は、 『Oracle Net Services管理者ガイド』を参照してください。

また、接続中にSIDの代わりにサービス名(database_name.domain_name)を使用できます。

役に立てば幸いです。

9
scv

Oracle 11gをインストールしてからデータベースを作成したときに、同じ問題が発生しました。

リスナーが手動で作成する必要があることさえ知りません。したがって、Net Configuration Assistantを開き、リスナーを手動で作成します。

また、SQL Developerを使用してローカルに作成したデータベースに接続できます。

3
Pete Ng

私はちょうどによって解決しました:正しいホストとポートを与えられたので:

  1. Oracle Net Managerを開く
  2. 地元
  3. リスナー

アドレス2のリスナーで、ホストをOracle Developerにコピーします

最終的にOracleに接続します

2
Diyar Bakir

listener.oraという名前のファイルは、インストールフォルダーoraclexe\app\Oracle\product\11.2.0\server\network\ADMINの下にあります。次のエントリが含まれています。

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(Host = Codemaker-PC)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

ホスト(ここではCodemaker-PC)がコンピューター名であることを確認する必要があります。正しくない場合は、コンピューター名として変更します。

次に、管理者として実行するコマンドプロンプトで次のコマンドを試してください。

lsnrctl start
1
Codemaker

奇妙なことに、私はsvcの反対の動きをすることで同じ問題を解決することができました!そうしなければならなかった :

1)tnsnames.ora/listener.oraファイルのFQDNホスト名をlocalhostに置き換え、リスナーサービスを再起動します。

2)2つ目は、SQL Developer入力テキストボックスのユーザー名として「SYSDBA SYSDBA」を使用する必要がありました。

最終的にローカルインスタンスにSQL Developerフックを持たせることができます。

1
Fabien Haddadi

リスナのみを起動すると、データベースに接続できます。エディターで実行されるコマンド:

lsnrctl start

うまくいきました。

1
Mayank Agrawal

私は同じ問題に直面しました。私はファイアウォールをオフにする必要があり、それが機能しました。

ポートを開くこともできます: http://windows.Microsoft.com/en-in/windows/open-port-windows-firewall#1TC=windows-7

0
Durgesh Gupta

これは私のために働いた。助けになるかもしれません。ファイアウォールをオフにします。 RHEL 7で

systemctl stop  firewalld
0
malatesh

私にとって、ホストはtnsnames.oraとlistener.oraで異なって設定されました。 1つはコンピューターのフルネームに設定され、もう1つはIPアドレスに設定されました。私はそれらをコンピューターのフルネームに同期しましたが、うまくいきました。 Oracleサービスを再起動することを忘れないでください。

IPアドレスとコンピューター名は私の理解では最終的に同じだと思うので、これがなぜ問題を引き起こしたのかを正確に理解していません。

0
박건도