必ずつながる! 接続時トラブル虎の巻
・Oracleにつながらない?!
・ローカル・ネーミングの構成
・データベースサーバまで届いていないケース
・リスナーまで届いていないケース
・データベースまで届かないケース
・データベースまで届いたあとのケース
(関連キーワード:tnsnames.ora)
Oracleにつながらない?!
今回は、「ローカル・ネーミング(tnsnames.ora)を使用してクライアントからデータベースへ接続を行う際に発生するエラー」について紹介します。ここで紹介するエラーがすべてではありませんが、よく遭遇するエラーかと思います。
ここでは、エラーを以下4ケースに分けて説明します。
- データベースサーバまで届いていないケース
- リスナーまで届いていないケース
- データベースまで届いていないケース
- データベースまで届いたあとのケース
ローカル・ネーミングの構成
今回の例では、クライアントマシンのtnsnames.oraに記載したtest_nsnという名前のネット・サービス名を使用してデータベースに接続を行います(リスト1参照)。
この設定はtnsnames.oraの基本的な構成です。
●リスト1 tnsnames.ora1: test_nsn = 2: (DESCRIPTION= 3: (ADDRESS= 4: (PROTOCOL=TCP)(HOST=machine1)(PORT=1522) 5: ) 6: (CONNECT_DATA= 7: (SERVICE_NAME=testdb) 8: ) 9: )
リスト1のパラメータのうち、ポイントとなるものについて簡単に説明します。
| test_nsn | ネットサービス名。リスト1の2行目から9行目の“ (description = ….<以下略> ) ”を「接続記述子」といいますが、その接続記述子に短い別名を付けたものです。今回はtest_nsnという名前を付けていますが、任意の名前を付けることが可能です。SQL*Plusなどでクライアントからデータベースに接続する際、@以降に記述します。 例:SQL> conn scott/tiger@test_nsn |
| HOST | リスナーが起動しているホスト(またはIPアドレス)を指定します。今回の例では、machine1という名前のデータベースサーバを指定します。 |
| PORT | リスナーがリッスンしているポート番号を指定します。今回の例では、1522を指定します。 |
| SERVICE_NAME | リスナーが認識している(リスナーに登録されている)データベースサービスを指定します。 |
それでは早速、エラーが発生するケースについて紹介しましょう。先に紹介したtest_nsnというネット・サービス名を使用して、データベースに接続します。また、以降ではデータベースサーバはUNIX環境であることを想定します。Windows環境について記載する際には、その旨を記載します。
パターン1:データベースサーバまで届いていないケース
●図2 データベースサーバまで届いていないケース
ORA-12545:ターゲット・ホストまたはオブジェクトが存在しないため、接続に失敗しました
接続を試みたところ、ORA-12545が発生しました。
●リスト2 ORA-12545の出力例%sqlplus /nolog SQL> conn scott/tiger@test_nsn ERROR: ORA-12545: ターゲット・ホストまたはオブジェクトが存在しないため、接続に失敗しました
SQL>
このメッセージが出力される場合、基本的にはtnsnames.oraのHOSTパラメータで指定したホスト名の名前解決ができていないことが原因であると考えられます。
そのため、まずはpingコマンドが成功するかどうかを確認します。今回の例では、ping machine1 の結果が unknown host となったので、クライアントのhosts ファイルにmachine1とそのIPアドレスを記入し、このエラーの対処を行いました。
補足となりますが、そのほかにデータベースサーバまで届かないケースとして、
ORA-12535: TNS: 操作はタイムアウトしました。
ORA-12170: TNS: 接続タイムアウトが発生しました。
といったメッセージが発生するケースもあります。これらのメッセージは、ネットワークやファイアウォールの問題であったり、データベースサーバが落ちていたり、hostsファイルやtnsnames.oraに設定されているIPアドレスが間違っていたりと発生要因はさまざまです。なお、これらエラーはマシンの負荷やネットワークの負荷でも発生する場合もあります。
| 1/4 |
| Index | |
| 必ずつながる! 接続時トラブル虎の巻 | |
| Page 1 Oracleにつながらない?! ローカル・ネーミングの構成 パターン1:データベースサーバまで届いていないケース |
|
| Page 2 パターン2:リスナーまで届いていないケース |
|
| Page 3 リスナーの構成 “DBビル”で例えると |
|
| Page 4 パターン3:データベースまで届かないケース データベースまで届いたあとのケース パターン4:データベースまで届いたあとのケース 1つ1つ原因を探れば必ず接続できる! |
|
| Oracleトラブル対策の基礎知識 |
TechTargetジャパン
- やはりSELECT文は永遠のテーマです (2012/2/7)
Database Expertフォーラムの2012年1月のアクセスランキングをお届けします。定番の記事を一気に追い抜いてあの記事が…… - SELECT文で取り出したデータを加工して表示する (2012/1/25)
SELECT文で取り出したデータを対象に四則演算する方法など、データを見やすくする方法を解説します - 2012年は私たちが勉強会を盛り上げる! (2012/1/23)
2011年12月、データベース業界初の女子会が発足しました。そこで、女子会を盛り上げていってくれそうな2人にお話を伺いました - 複数の条件を指定してSELECT文を実行する (2012/1/13)
複数の条件を指定してSELECT文を実行する方法と、条件指定に必要な論理演算子、比較演算子の役割を解説します
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
