Forum Stats

  • 3,839,643 Users
  • 2,262,518 Discussions
  • 7,901,029 Comments

Discussions

OCIでの接続

977202
977202 Member Posts: 64
お世話になっております。

Windows7+Apache2.22+PHP5.3+Oracle11gR2をオールインワンで一台で動かしています。

PHPからはPDO_OCI経由でOracleに接続しているのですが、以下のエラーが出ます。

ORA-12514: TNS: リスナーは接続記述子でリクエストされたサービスを現在認識していません

sqlplusでログインできるので、問題ないかと思いきや、
実は、Oracle11gR2サーバソフトのsqlplusを使っていたからで、
OracleInstantClienteのインストールディレクトリにあるsqlplusでログインしようとすると、
やはり、以下のとおりつながりませんでした。

ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました

サーバとインスタントクライアントが同居する環境なわけですが、
対処方法等教えていただければ幸いです。
Tagged:
«13

Answers

  • asahide
    asahide Member Posts: 1,095 Bronze Trophy
    edited Apr 4, 2013 2:28AM
    OracleInstantClienteのインストールディレクトリにあるsqlplusでログインしようとすると、
    やはり、以下のとおりつながりませんでした。
    コマンドラインでどのように接続しようとして、どのようにエラーが出ているかを提示できますでしょうか。
    DBで接続できている時の結果もあると良いです。

    また、EZCONNECTで接続できますか?
    <<http://docs.oracle.com/cd/E16338_01/network.112/b56288/naming.htm#i498306>>


    後、同じサーバでしたらPATHを通しておけばDBのSQLPLUSを使っても問題ないと思いますが。。。
  • 977202
    977202 Member Posts: 64
    ご返信ありがとうございます。

    エラーを3例と、エラーにならない場合の例です。

    ●エラーの例(最初の質問のとおり)

    C:\>instantclient_11_2\sqlplus

    SQL*Plus: Release 11.2.0.3.0 Production on 木 4月 4 15:42:30 2013

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

    ユーザー名を入力してください: system
    パスワードを入力してください:
    ERROR:
    ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました

    ●エラーの例2(SIDを指定した場合で、PDOでのエラーと同じです。)
    C:\>instantclient_11_2\sqlplus [email protected]

    SQL*Plus: Release 11.2.0.3.0 Production on 木 4月 4 15:39:07 2013

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

    パスワードを入力してください:
    ERROR:
    ORA-12154: TNS: 指定された接続識別子を解決できませんでした


    ●エラーの例3(host名を指定した場合)
    C:\>instantclient_11_2\sqlplus [email protected]/SID

    SQL*Plus: Release 11.2.0.3.0 Production on 木 4月 4 15:47:51 2013

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

    ERROR:
    ORA-12504: TNS: リスナーはCONNECT_DATAのSERVICE_NAMEを取得できませんでした。


    ユーザー名を入力してください: system
    パスワードを入力してください:
    ERROR:
    ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました


    ●エラーにならない例(サーバのsqlplusを使った場合)

    C:\>\app\SID\product\11.2.0\dbhome_1\BIN\sqlplus [email protected]

    SQL*Plus: Release 11.2.0.1.0 Production on 木 4月 4 15:36:25 2013

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

    パスワードを入力してください:


    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    に接続されました。
    SQL>

    EZCONNECT もしくは CONNECTについては、実行プログラムが見つかりませんでした。

    よろしくお願いします。
  • yamamoto
    yamamoto Member Posts: 177
    c:\app\SID\product\11.2.0\dbhome_1\network\admin配下のsqlnet.oraおよびtnsnames.oraを提示できますか?

    また、c:\instantclient_11_2\network\admin配下にsqlnet.oraおよびtnsnames.oraは存在しますか?存在する場合、提示できますか?

    connectはSQL*PLUSに接続後のコマンドです。
    また、EZCONNECT は簡易接続のことで、コマンドではありません。

    SID、サービス名、ネット・サービス名の違いは理解していますか?
  • 977202
    977202 Member Posts: 64
    c:\app\SID\product\11.2.0\dbhome_1\network\admin配下
    c:\instantclient_11_2\network\admin配下

    共に、以下のとおりです。

    ●tnsname.ora
    SID =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SID = SID)
    )
    )

    ORACLR_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
    (SID = CLRExtProc)
    (PRESENTATION = RO)
    )
    )

    LISTENER_SID =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    ●sqlnet.ora
    SQLNET.AUTHENTICATION_SERVICES= (NTS)

    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

    よろしくお願いします。
  • asahide
    asahide Member Posts: 1,095 Bronze Trophy
    edited Apr 4, 2013 3:35AM
    同じユーザ(Windows上の)を使用されてますでしょうか?
  • 977202
    977202 Member Posts: 64
    同じユーザです。
  • asahide
    asahide Member Posts: 1,095 Bronze Trophy
    c:\instantclient_11_2\network\admin配下
    instant clientのtnsnames.oraは
    c:\instantclient_11_2
    配下に配置すべきではないでしょうかね。。
  • yamamoto
    yamamoto Member Posts: 177
    edited Apr 4, 2013 5:13AM
    >
    c:\instantclient_11_2\sqlplus [email protected][ホスト名orIP]/SID
    >
    を実行すると、どうですか?
  • 977202
    977202 Member Posts: 64
    以下のとおりです。よろしくお願いします。

    C:\>\instantclient_11_2\sqlplus [email protected]/SID

    SQL*Plus: Release 11.2.0.3.0 Production on 木 4月 4 17:13:15 2013

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

    ERROR:
    ORA-12504: TNS: リスナーはCONNECT_DATAのSERVICE_NAMEを取得できませんでした。


    ユーザー名を入力してください: system
    パスワードを入力してください:
    ERROR:
    ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました
  • 977202
    977202 Member Posts: 64
    edited Apr 4, 2013 4:19AM
    上記のyamamoto様へのReplyでは、
    tnsnames.oraをc:\instantclient_11_2配下に置いてみました。

    Edited by: 974199 on 2013/04/04 1:19
This discussion has been closed.