こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

オラクルの「ORA_12545 ターゲット・ホストまたはターゲットが見つかりません」のエラーについて

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

投稿日時 - 2001-06-06 18:09:45

QNo.86289

困ってます

質問者が選んだベストアンサー

また、くまです。
>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に変更していながら、クライアントはそのままのバージョンであるかを聞いたものです。

投稿日時 - 2001-06-13 13:26:34

お礼

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

投稿日時 - 2001-06-18 00:07:15

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

「Oracle Net8 EasyConfig」を使って「tnsnames.ora」を作成しました所、
そちらのファイルとは違ったものが出来ました。

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

投稿日時 - 2001-06-08 07:53:36

ANo.3

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

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

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

投稿日時 - 2001-06-07 16:56:46

補足

すいません。くまさん。

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

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

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

はどういう意味ですか?


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

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


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

投稿日時 - 2001-06-13 12:44:17

ANo.2

sqlplusで接続する時に接続文字列を付けていますか。
Exp
USER scott
PASSWORD   tiger
接続文字列 orcl.world(tnsnames.oraに登録されている接続文字列)

 sqlplus scott/tiger@orcl.world

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

投稿日時 - 2001-06-07 13:03:25

補足

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

ちなみに、下記が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:09

ANo.1

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

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

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

投稿日時 - 2001-06-06 18:33:16

あなたにオススメの質問