ページ)データベースにつなぐための設定とトラブルシューティングは、慣れていないとどこから手を付けていいのかすら分かりません。公開[澤田岳宣,株式会社コーソル]この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。今回の主な内容Oracleにつながらない?!ローカル・ネーミングの構成データベースサーバまで届いていないケースリスナーまで届いていないケースデータベースまで届かないケースデータベースまで届いたあとのケース(関連キーワード:tnsnames.ora)今回は、「ローカル・ネーミング(tnsnames.ora)を使用してクライアントからデータベースへ接続を行う際に発生するエラー」について紹介します。ここで紹介するエラーがすべてではありませんが、よく遭遇するエラーかと思います。ここでは、エラーを以下4ケースに分けて説明します。今回の例では、クライアントマシンのtnsnames.oraに記載したtest_nsnという名前のネット・サービス名を使用してデータベースに接続を行います(リスト1参照)。この設定はtnsnames.oraの基本的な構成です。tnsnames.oraリスト1のパラメータのうち、ポイントとなるものについて簡単に説明します。test_nsnネットサービス名。”を「接続記述子」といいますが、その接続記述子に短い別名を付けたものです。今回はtest_nsnという名前を付けていますが、任意の名前を付けることが可能です。SQL*Plusなどでクライアントからデータベースに接続する際、@以降に記述します。scott/tiger@test_nsnHOSTリスナーが起動しているホスト(またはIPアドレス)を指定します。今回の例では、machine1という名前のデータベースサーバを指定します。PORTリスナーがリッスンしているポート番号を指定します。今回の例では、1522を指定します。SERVICE_NAMEリスナーが認識している(リスナーに登録されている)データベースサービスを指定します。それでは早速、エラーが発生するケースについて紹介しましょう。先に紹介したtest_nsnというネット・サービス名を使用して、データベースに接続します。以降ではデータベースサーバはUNIX環境であることを想定します。Windows環境について記載する際には、その旨を記載します。データベースサーバまで届いていないケースORA-12545:ターゲット・ホストまたはオブジェクトが存在しないため、接続に失敗しました接続を試みたところ、ORA-12545が発生しました。ORA-12545の出力例このメッセージが出力される場合、基本的にはtnsnames.oraのHOSTパラメータで指定したホスト名の名前解決ができていないことが原因であると考えられます。そのため、まずはpingコマンドが成功するかどうかを確認します。ファイルにmachine1とそのIPアドレスを記入し、このエラーの対処を行いました。操作はタイムアウトしました。接続タイムアウトが発生しました。いったメッセージが発生するケースもあります。これらのメッセージは、ネットワークやファイアウォールの問題であったり、データベースサーバが落ちていたり、hostsファイルやtnsnames.oraに設定されているIPアドレスが間違っていたりと発生要因はさまざまです。これらエラーはマシンの負荷やネットワークの負荷でも発生する場合もあります。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。