• 締切済み
  • 困ってます

ORA-12514が出た時の対処法と原因

今回で2度目なのですが、ORA-12514のエラーがでる様になりました。 前回は仕方なくフォルダを削除して再インストールしたら直りましたが、 PCで作業している内に再び同じ現象になりましたので、 原因と再インストール以外の対処法があればと思い書き込みさせて頂きました。 環境はWindows2000でOracle10gです。 Oracleを入れたPCと作業しているPCは同じPCです。 前回と今回の違いは、 前回は「XYZ」の作成をしていない。 サービスのOracleOraDb10g_home1TNSLitenerが開始できなかった。 (一応コマンド入力でもダメでした) (リスナーの起動を試すみたいなのがインターネットで検索してる時に書いてあったので参考にしました) の2点です。 現在は「XYZ」が作成されているのと、 OracleOraDb10g_home1TNSLitenerが停止したり開始したりすることができます。 自分で作成したオラクルは初めてで、 最初にエラーが出た時もインターネットで検索したりして、 原因を探そうと思いましたが難しくて断念し再インストールといった感じでした。 どうかよろしくお願いします。 listener.oraとtnsnames.oraは下記の通りです。 # listener.ora Network Configuration File: g:\oracle\product\10.1.0\Db_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = g:\oracle\product\10.1.0\Db_1) (PROGRAM = extproc) ) ) XYZ = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = abc)(PORT = 1521)) ) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = abc)(PORT = 1521)) # tnsnames.ora Network Configuration File: g:\oracle\product\10.1.0\Db_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. XYZ = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = abc)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = abc)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )

共感・応援の気持ちを伝えよう!

  • Oracle
  • 回答数3
  • ありがとう数3

みんなの回答

  • 回答No.3

No2です。 fumi3さんはlistener.oraとtnsnames.oraがごっちゃになっているように見えます。 listener.oraは、 listenerを起動する際に、どのようなポート番号とホスト名を利用するかを記載します。確か、名称はデフォルトではLISTENERですが、好きな名前に変えてもちゃんと動くはずです。 但し、ポート番号とホスト名が重複するような設定はNGです。 【正しい設定】 XYZ = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = abc)(PORT = 1522)) ) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = abc)(PORT = 1521)) これは、Listenerの冗長化設定となりますが、 普通あまりやらない設定です。 【正しい設定2】 LISTENER = の部分を消す または、 XYZ = の部分を消す(何れもListener.oraについて) tnsnames.oraは、 単に、データベースの接続文字列を記載する所です。 もっと詳しい話はありますが、基本的には上記通りだと思います。 補足まで

共感・感謝の気持ちを伝えよう!

  • 回答No.2

XYZは、NETCA(ネットコンフィグレーション・・・) を使って、LISTENER.ORAに追加してないと思いますが、 如何でしょうか? (※NETCAでは、同一ポート番号を指定できなかったと思うので、 そもそも追加出来なかった気がします) 記載されていますLISTENER.ORAの内容は、 同一HOST,PORT番号ポート指定だと、 ポートが開けずにエラーとなる気がします。 (XYZについて、どのような利用方法を想定しているのかは解りませんが、少なくとも同一ポート番号、ホスト名は変だと思います) 同じ環境で以前動いたとすれば、 逆に何故動いたのだろうと思います。

共感・感謝の気持ちを伝えよう!

  • 回答No.1

何をしたくて、何をしたら、おかしくなったのかを書いていないので、憶測ですが・・ データベースインスタンスを多重化したいのであれば、リスナーを多重化する必要など全く意味無い事なので、 listener.oraを元に戻せば、それでOK。 無駄に追加されてしまったリスナーサービス(Windows上のサービス)はコントロールパネルから手動にしておいて、 二度と起動させなければ、以後実害無し。(綺麗にしたければ、レジストリを削除する必要がある) ちなみに元のリスナー記述は、こんなハズ。 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = g:\oracle\product\10.1.0\Db_1) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) (ADDRESS = (PROTOCOL = TCP)(HOST = abc)(PORT = 1521)) ) ) どうして、リスナ記述上のキーワードがくしゃくしゃなのかは、理解できません。 適当に書いたとしか思えない、リスナー記述です。(タダの転記ミスなのかも知れませんけど)

共感・感謝の気持ちを伝えよう!

質問者からの補足

k_o_r_o_c_h_a_nさん。ご返答ありがとうございます。 直接的な原因かはわかりませんが、2回ともPCがフリーズをして再起動をしたことがあります。 この時、特にオラクルでの作業中というわけではなかったのですが、サービスは起動してるはずなので一応・・・ あと、2度目の時はSQLServer(クライアント)をインストールしました。 それ以外は思い当たる原因はありません。 2度目のリスナーを追加した後も普通に動いたのですが、 リスナーのキーワードがくしゃくしゃなのですか? 一応手直ししたのは、「(HOST = abc)」のabc部分に他の文字が入っているのと、 「XYZ = 」のXYZ部分に他の文字が入っている位なのですが・・・

関連するQ&A

  • データベースに接続できない

    データベースに接続できません!! 「tnsnames.ora」、「listener.ora」、「sqlnet.ora」の内容は以下になっております。いろいろ調べてみて、これでいいとは思うのですが、「ORA-12545 ターゲット・ホストまたはオブジェクトが見つかりません。」というエラーが出てしまい接続できません。 DBはOracle10g Release1を使用しています。 【tnsnames.oraの内容】 ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) ) 【listener.oraの内容】 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = G:\oracle\product\10.1.0\Db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_NAME = orcl) (ORACLE_HOME = G:\oracle\product\10.1.0\Db_1) (SID_NAME = orcl) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) )

  • 【sqlplus】USER/PASS@HOSTでログインできない

    SQLPLUSでローカルのOracle10gに接続を試みているのですが コマンドプロンプトで sqlplus USER/PASS では接続できるのですが、 sqlplus USER/PASS@HOST で接続できないんです。 環境は下記となっております。 Windows XP Oracle10g(10.1.0) ======【エラー内容】================================== C:\Documents and Settings\XXXX XXXX>sqlplus USER/PASS@orcl SQL*Plus: Release 10.1.0.2.0 - Production on 火 7月 3 01:56:57 2007 Copyright (c) 1982, 2004, Oracle. All rights reserved. ERROR: ORA-12523: TNS:listener could not find instance appropriate for the client connection ======【listener.ora】================================== # listener.ora Network Configuration File: C:\oracle\product\10.1.0\Db_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = C:\oracle\product\10.1.0\Db_1) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = ORCL) (ORACLE_HOME = C:\oracle\product\10.1.0\Db_1) (PROGRAM = oracle) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) ) ======【sqlnet.ora】================================== # sqlnet.ora Network Configuration File: C:\oracle\product\10.1.0\Db_1\network\admin\sqlnet.ora # Generated by Oracle configuration tools. SQLNET.AUTHENTICAION_SERVICES=NONE NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) ======【tnsnames.ora】================================== # tnsnames.ora Network Configuration File: C:\oracle\product\10.1.0\Db_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521) ) (CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = orcl) ) ) ======【tnsping】================================== Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521)) ( CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = orcl))) OK (40 msec) ======【LSNRCTL>status】================================== Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROCipc))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))) Services Summary... Service "ORCL" has 1 instance(s). Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service... 実は当初PHPから接続しようと色々やっていたのですが、sqlplusで まともに接続できていないことが判明し、自分でも色々調べてみた のですが、どうしてもうまくいかず質問させていただいた次第です。 初心者ですが、どうかよろしくお願いいたします。

  • PHP5でOracle接続がエラー

    Linuxサーバー(Oracle(10.1)+Apache(2.0.52)+PHP(5.0.5)) からデータを参照し、ブラウザで表示するものを作成しようとしています。 PHPからオラクルへ接続テストをしたところ、うまくいきませんでした。 $conn=oci_connect($user,$pass,$db); これがORA-12514のエラーになります。 エラーの原因がわかりません。どういうことを確認すればいいですか? tnsnames.oraとlistener.oraの"HOST"はIPアドレスにしていますが、 リスナーのステータス(コマンド:lsnrctl status) で見た"HOST"は<*.co.jp>というふうになっています。 これは問題ないのでしょうか? (tnsnames.ora) <$DB> = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <IPアドレス>)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =<$db>) ) ) (listener.ora) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <IPアドレス>)(PORT = 1521)) ) ) (リスナーのステータス) リスニング・エンドポイントのサマリー... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<$db.**.co.jp>)(PORT=1521)))

  • クライアントからの接続の失敗

    いつもお世話になっております。 Oracle11gをクライアントから接続できなくなり、対応がわからず困っております。 昨日まで問題なくクライアントから接続していましたが、サーバーのIPが変更されたせいか「接続タイムアウト」になり接続できなくなってしまいました。 listener.oraには (DESCRIPTION_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = ××)(PORT = 1521)) の記述があり、Enterprise Managerの該当リスナーのページで確認すると(KEY = EXTPROC1521)が選択され、TCPを選択しても、IPCに戻ってしまいます。これは何か問題がありますでしょうか? またlistener.oraやtnsnames.oraの設定とか、どのあたりを確認すればよろしいでしょうか? お恥ずかしい限りですが、何卒よろしくお願いいたします。

  • オラクル 10g リスナーの設定ファイルについて

    お世話になります。 新規DBをDBCAで作成し、その後、Oracle Net Managerで、listener.oraファイルを設定したところ、外部プロシージャ定義(extproc関連)が 作成されてませんでした。 利用環境:DBサーバー(solaris8、Oracle10gR1)、クライアントPC(winXP、Access2003のアプリ) 複数のクライアントPCからLANを経由してDBサーバーへアクセスします。 質問 1.外部プロシージャ定義はどのような場合に記述するのでしょうか? 2.とりあえず記述しておいた場合に何か問題が起こる可能性はありますでしょうか? 3.記述場所は以下でよろしいでしょうか? SID_LIST_リスナー名 = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = DBネーム) (ORACLE_HOME = オラクルHOME) (SID_NAME = オラクルSID) ) ---以下外部プロシージャ定義(1)--- (SID_DESC = (GLOBAL_DBNAME = PLSExtproc) (ORACLE_HOME = オラクルHOME) (SID_NAME = extproc) ) ---(1)以上---- ) リスナー名 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = プロトコル)(HOST = ホスト名)(PORT = ポート番号)) ) ---以下外部プロシージャ定義(2)--- (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) ---(2)以上--- ) 宜しくお願い致します。

  • オラクル:ORA-12154メッセージ

    助けてください。 クライアントからSQL*PLUSを実行しようとすると出ます。 NetConfigurationAssistantのローカル・ネット・サービス名構成でテストすると接続OKです。 過去の投稿を参考にしましたが直りません。 Oracle9iです。 サーバに作ったデータベースはabcです。 ホストマシン名はabc-serverです。 今、tnsnames.oraの中は次の通りです。 abc = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = abc-server)(PORT = 1521)) ) (CONNECT_DATA = (SID = abc) ) )

  • ORA-12154 TNS:指定された接続識別子を解決できませんでした

    こんにちは、よろしくお願いします。件名のエラーで困っています。 発生しているのはSQLStudio(1.3.10.443)で、データベース接続時に件名のエラーが発生します。(Oracle10g(10.2.0.1.0)) tnsnames.oraの内容とも合致している様子です。 またNet Managerのテストでは問題なく接続できます。 どなたか同様の経験をお持ちの方、いらっしゃいませんか? <tnsnames.ora>------------------------------------------ xxx_SVR = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = server01)(PORT = 1521)) ) (CONNECT_DATA = (SID = sid) ) ) ※server01は、hostsで解決済み <SQL Studioの接続文字列>------------------------------------ Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=userid;Data Source=xxx_SVR ・・・如何でしょうか? ちなみに同様の設定を行っている「ハズ」の同僚は、問題なく接続できています。

  • SQL*PLUSでホスト名を入れるとエラー

    よろしくお願いします。 SQL*PLUSで、ホスト名を入れると、ORA-12154エラーとなってしまいます。 ホスト名を入力しないと、正常に接続可能です。 ちなみに、DBはローカルにあります。 以下、TNSNAMES.ORAの内容です。 =========================== ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = cl-000788.iafc.local )(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) ================================= どこか、設定が間違っているのでしょうか? よろしくお願いいたします。

  • Oracle10gExpressをインストールした後、Oracle8iの接続ができなくなった(ORA-12154)

    お世話になります。 Oracle8iクライアントがインストールされている環境に、 Oracle10gExpressをインストールしました。 Oracle8iでインストールした、SQL Plusからは問題なく接続できるのですが、 AccessにODBC接続させていた、Oracleへの接続がうまくいかなくなりました。 よくわかっていないのですが、 どうも、Oracle10gのtnsnamesを参照しにいっているような気がします。 でも、oracle8iのtnsnames.oraの内容をそのまま、 10gのtnsnames.oraにコピーしましたが、だめでした。 何かご存知の方アドバイスいただけないでしょうか? よろしくお願いいたします。 ●8iのtnsnames.oraでうまくいっていた内容を、10gにコピーした内容です。(内容は変更せずにそのままコピーしました) test.xxx.CO.JP = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = test) ) )

  • リスナーがありません

    無償版のOracle 12cをインストールしました。 レジストリで「ORACLE_HOME」と「ORACLE_SID」の値を確認して環境変数に設定しました。 ORACLE_HOME … C:\app\ora\product\12.1.0\dbhome_2 ORACLE_SID … orcl それから下記のURLを参考にしてユーザーを作成しました。 http://replication.hatenablog.com/entry/2015/08/05/093000 作成したユーザーで接続しようとしたら下記のエラーが発生してしまいました。 conn 上記で作成したユーザー/パスワード@PDBORCL ORA-12541: TNS: リスナーがありません ネットで「tnsnames.ora」に記述するという記事を見たので下記のパス先ある「tnsnames.ora」に下記の内容を追加しました。 C:\app\ora\product\12.1.0\dbhome_2\NETWORK\ADMIN PDBORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = IPアドレス)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = PDBORCL) ) ) でも結果は同じでした。 ※試しに下記のパス先に「tnsnames.ora」を設置しても同じでした。 C:\app\ora\product\12.1.0\dbhome_1\NETWORK\ADMIN 申し訳ありませんがどのようにすればいいのでしょうか。 何卒、ご教授宜しくお願いします。