web-dev-qa-db-ja.com

Windows SQL * PlusクライアントをOracle 11g Linuxサーバーに接続しようとすると、エラーORA-12560が発生する

Centosに11gをインストールしましたVM私のMacにあります。サーバー上ですべてが正常に動作しており、cenosで実行した次のコマンドが含まれています。

$ lsnrctlステータス

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 23-JUN-2014 14:49:41

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hayer)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                23-JUN-2014 14:03:58
Uptime                    0 days 0 hr. 45 min. 42 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/Oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/app/Oracle/diag/tnslsnr/hayer/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=hayer)(PORT=1522)))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

私のtnsnames.oraファイルは次のとおりです。

# tnsnames.ora Network Configuration File: /u01/app/Oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(Host = hayer)(PORT = 1522))


ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(Host = hayer)(PORT = 1522))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
      (SID = orcl)
    )
  )

~                                                                               
~                                                                               
~                                                                               
~   

Centosサーバーでは、sqlplusを使用してログインすることもできます。 Windowsのtnsnames.oraをserverと同じに変更しました。WindowsHostファイルにOracle Host情報を追加し、ポート1522でOracle Hostとtelnet Hostにpingを送信できます。

私はサービスiptablesを無効にしているので、centosにファイアウォールのタイプは存在しません。

しかし、私はまだWindowsクライアントで次のエラーが発生します:

SQL*Plus: Release 11.2.0.1.0 Production on Mon Jun 23 14:51:31 2014

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

Enter user-name: system as sysdba
Enter password:
ERROR:
ORA-12560: TNS:protocol adapter error


Enter user-name: system as sysdba
Enter password:
ERROR:
ORA-12560: TNS:protocol adapter error
3
Auguster

Windowsクライアントでは、TNSエイリアス@ORCLを指定する必要があります。指定しない場合、Windowsクライアントで実行されているローカルデータベースに接続しようとしていると想定しますが、存在しません。また、system as sysdbaは一般的には使用されません。 SYS as sysdbaおよび単純なsystemが使用されます。

Enter user-name: system@ORCL
Enter password:

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning option

Windowsクライアントでtnsnames.oraを設定していない場合でも、tnsnamesを設定する代わりに、EZCONNECT文字列@"hayer:1522/orcl"を介して接続できます(そうです、引用符が必要です)。

Enter user-name: system@"hayer:1522/orcl"
Enter password:

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning option
8
Joshua Huber