セキュリティのために詳細を変更したことに注意してください。ただし、問題はそのまま残ります。
たとえば、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
次の情報があります。
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で接続できますか?え?
とにかく支援をいただければ幸いです。ありがとう
よろしく、オタク
将来のコミュニティユーザーの利益のためにこれに答えています。複数の問題がありました。この問題が発生した場合は、次を探すことをお勧めします。
これらの3つのことをしたら、問題を解決しました。
同様の問題があり、同じエラーが継続的に発生しました。リスナーのポート番号の変更、ファイアウォールの無効化など、多くのことを試しました。最後に、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
)を使用できます。
役に立てば幸いです。
Oracle 11gをインストールしてからデータベースを作成したときに、同じ問題が発生しました。
リスナーが手動で作成する必要があることさえ知りません。したがって、Net Configuration Assistantを開き、リスナーを手動で作成します。
また、SQL Developerを使用してローカルに作成したデータベースに接続できます。
私はちょうどによって解決しました:正しいホストとポートを与えられたので:
アドレス2のリスナーで、ホストをOracle Developerにコピーします
最終的にOracleに接続します
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
奇妙なことに、私はsvcの反対の動きをすることで同じ問題を解決することができました!そうしなければならなかった :
1)tnsnames.ora/listener.oraファイルのFQDNホスト名をlocalhostに置き換え、リスナーサービスを再起動します。
2)2つ目は、SQL Developer入力テキストボックスのユーザー名として「SYSDBA SYSDBA」を使用する必要がありました。
最終的にローカルインスタンスにSQL Developerフックを持たせることができます。
リスナのみを起動すると、データベースに接続できます。エディターで実行されるコマンド:
lsnrctl start
うまくいきました。
私は同じ問題に直面しました。私はファイアウォールをオフにする必要があり、それが機能しました。
ポートを開くこともできます: http://windows.Microsoft.com/en-in/windows/open-port-windows-firewall#1TC=windows-7
これは私のために働いた。助けになるかもしれません。ファイアウォールをオフにします。 RHEL 7で
systemctl stop firewalld
私にとって、ホストはtnsnames.oraとlistener.oraで異なって設定されました。 1つはコンピューターのフルネームに設定され、もう1つはIPアドレスに設定されました。私はそれらをコンピューターのフルネームに同期しましたが、うまくいきました。 Oracleサービスを再起動することを忘れないでください。
IPアドレスとコンピューター名は私の理解では最終的に同じだと思うので、これがなぜ問題を引き起こしたのかを正確に理解していません。