プロが教える店舗&オフィスのセキュリティ対策術

今回で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)
)
)

A 回答 (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は、
単に、データベースの接続文字列を記載する所です。

もっと詳しい話はありますが、基本的には上記通りだと思います。
補足まで
    • good
    • 0

XYZは、NETCA(ネットコンフィグレーション・・・)


を使って、LISTENER.ORAに追加してないと思いますが、
如何でしょうか?
(※NETCAでは、同一ポート番号を指定できなかったと思うので、
そもそも追加出来なかった気がします)

記載されていますLISTENER.ORAの内容は、
同一HOST,PORT番号ポート指定だと、
ポートが開けずにエラーとなる気がします。
(XYZについて、どのような利用方法を想定しているのかは解りませんが、少なくとも同一ポート番号、ホスト名は変だと思います)

同じ環境で以前動いたとすれば、
逆に何故動いたのだろうと思います。
    • good
    • 0

何をしたくて、何をしたら、おかしくなったのかを書いていないので、憶測ですが・・



データベースインスタンスを多重化したいのであれば、リスナーを多重化する必要など全く意味無い事なので、
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部分に他の文字が入っている位なのですが・・・

補足日時:2007/03/15 08:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す