プロが教えるわが家の防犯対策術!

マルチスレッドサーバ構成にしているOracle8iのサーバに対して、クライアントからSQLPlusなどで接続しようとすると、ORA-12545のエラーが出てしまいます。
tnsnames.oraファイルには、HOSTをIPアドレスで記述しており、そのIPアドレス宛には、pingもtelnetでも接続できます。プロトコルにはTCPを使用しており、特に問題はないと思うのですが・・・。ちなみに、サーバを専用サーバ構成に変更すると繋がるようになります。
この現象に対する対処方法をご存知の方、ご教授ください。

A 回答 (5件)

また、くまです。


>init<SID>.ora のHOST の構文を教えてください。

構文ではなく、あなたがデーターベースを作成するときに定義したSID名で自動生成された、データーベースに関するソースです。
存在場所:$ORACLE_HOME/dbs/init<SID>.ora ---> <SID> = TEST
中に書かれている、
db_name = "TEST" <---- データーベースの名前
instance_name = TEST <---- インスタンス名
service_names = TEST <---- サービス名
このソースにあるものと、tnsnames.ora に定義したSID名と同じでしょうか?と聞いたものです。

>lxinst でcharacterをオリジナルに作成していないでしょうか?

この意味は、Oracleデーターベースでユーザー定義キャラクターの利用を可能にするユーティリティコマンドです。簡単に説明しますと、ターゲットホストが見つからない理由は、要求するクライアントのキャラクターがSJISでも、データーベースに引き渡されると、UNICODEに一旦変換されるからです。今、ユーザ定義による作成されたキャラクターセットをなされた場合、これに対応するキャラクターが見つからないので、そのコマンドで作成されたかどうかを聞いたものです。

>レベルアップ等行われていないでしょうか?。
もちろん、データーベースのレベルアップです。8.1.6を8.1.8に変更していながら、クライアントはそのままのバージョンであるかを聞いたものです。
    • good
    • 0
この回答へのお礼

原因がわかりました。
ディスパッチャアドレスをinit.oraで明示的に記述していなかったため、
クライアント側にはホスト名で返っていたようで、名前解決ができなかったために
表示されたエラーでした。
クライアント側のHostsファイルに、サーバのホスト名とIPアドレスを記述するか、init.oraにディスパッチャアドレスをIPアドレスで記述すると繋がるようになりました。
いろいろありがとうございました。

お礼日時:2001/06/18 00:07

「Oracle Net8 EasyConfig」を使って「tnsnames.ora」を作成しました所、


そちらのファイルとは違ったものが出来ました。

test.world =←■”.world”がついています。■
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = HostName)←■コンピュータの名前です。■
(PORT = 1521)
)
(CONNECT_DATA = (SID = ORCL)←■内容が違います■
)
)
    • good
    • 0

こんにちは、ただの”くま”です。


お困りの件ですが、私も少々苦労しましたので、お助けできればと思い立ち寄らせていただきました。

 listener.ora と init<SID>.ora のHOST にも、tnsnames.ora 同様にIPアドレスを入れて、SID名をあわせてください。大文字、小文字は関係します。

 また、lxinst でcharacterをオリジナルに作成していないでしょうか?これをすると、今エラーとなっているものズバリ出ます。後、レベルアップ等行われていないでしょうか?。
 では、

この回答への補足

すいません。くまさん。

>listener.ora と init<SID>.ora のHOST にも、tnsnames.ora 同様にIPアドレスを入れて、SID名をあわせてください。大文字、小文字は関係します。

ですが、init<SID>.ora のHOST の構文を教えてください。

>また、lxinst でcharacterをオリジナルに作成していないでしょうか?

はどういう意味ですか?


>後、レベルアップ等行われていないでしょうか?。

何のレベルアップでしょうか?


すいませんが、上記の件について、よろしくお願いいたします。

補足日時:2001/06/13 12:44
    • good
    • 0

sqlplusで接続する時に接続文字列を付けていますか。


Exp
USER scott
PASSWORD   tiger
接続文字列 orcl.world(tnsnames.oraに登録されている接続文字列)

 sqlplus scott/tiger@orcl.world

上記で接続出来ないのであればtnsnames.oraの登録内容に不備があると思いますが。

この回答への補足

接続文字列は記述しています。
それでもエラーになります。
サーバを専用サーバ構成に変更すると繋がるようになります。

ちなみに、下記がtnsnames.oraファイルの中身です。

TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.143)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
)

補足日時:2001/06/07 14:17
    • good
    • 0

エラーを見た感じではSQL*Netの設定が正しく出来ていないように感じます。



OSがWindowsの場合では、「Oracle Net8 EasyConfig」の設定が正しく出来ていないように感じます。

質問を見た感じだとUnixの話のように見える為、Unixではなんと言うToolを使って設定するかわかりません。
    • good
    • 0

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

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


このQ&Aを見た人がよく見るQ&A