- 締切済み
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) ) )
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- WIZDASH
- ベストアンサー率71% (5/7)
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は、 単に、データベースの接続文字列を記載する所です。 もっと詳しい話はありますが、基本的には上記通りだと思います。 補足まで
- WIZDASH
- ベストアンサー率71% (5/7)
XYZは、NETCA(ネットコンフィグレーション・・・) を使って、LISTENER.ORAに追加してないと思いますが、 如何でしょうか? (※NETCAでは、同一ポート番号を指定できなかったと思うので、 そもそも追加出来なかった気がします) 記載されていますLISTENER.ORAの内容は、 同一HOST,PORT番号ポート指定だと、 ポートが開けずにエラーとなる気がします。 (XYZについて、どのような利用方法を想定しているのかは解りませんが、少なくとも同一ポート番号、ホスト名は変だと思います) 同じ環境で以前動いたとすれば、 逆に何故動いたのだろうと思います。
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
何をしたくて、何をしたら、おかしくなったのかを書いていないので、憶測ですが・・ データベースインスタンスを多重化したいのであれば、リスナーを多重化する必要など全く意味無い事なので、 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部分に他の文字が入っている位なのですが・・・