- 締切済み
ORA-12170のエラーについて
下記エラーの解決方法に心あたりのある方がいらっしゃったら教えてください。 現象 サーバーを用意し、そこにOracleDatabase11gR2をインストールし、クライアントマシンから Oracle Net Configration Assistantでネットサービス名の構成をする際、以下のエラーが出て 接続できません。 「ORA-12170: TNS: 接続タイムアウトが発生しました。」 ※1 サーバーでは同様のユーザ(SYSTEMユーザ)とパスワードでデータベースに接続できることは確認できています。 またファイアーウォールの設定でポート1521の接続の許可は行っております。 (クライアントからの接続のときのポートはデフォルトのまま1521を使用) ※2 ファイアーウォールを有効にしたまま接続を試みたとき、 C:\Windows\System32\LogFiles\Firewall\pfirewall.logに接続がブロックされたことがログとして出力されると思いますが、出力されませんでした。 よって、ポート1521はファイアーウォールに到達する前に、どこかで遮断されているように思われます。 (ポート1158で同様にファイアーウォールの有効性を確認したところpfirewall.logにブロックした旨の内容が出力されました。) よろしくお願いいたします。 環境 サーバー OS:Windows Server 2008 R2 (64bit) Oracle:Oracle Database 11g Release 2 (11.2.0.1.0) for Microsoft Windows (x64) ファイアーウォールの設定:ポート1521の接続は許可済み (1158の接続も許可) クライアントPC OS:Windows7 (32bit) Oracle:Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft Windows (32-bit)
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Siegrune
- ベストアンサー率35% (316/895)
> 「ORA-12170: TNS: 接続タイムアウトが発生しました。」 とでるということは、クライアントとサーバーが接続できていないのだから まず、 PING IPアドレスで接続できるの?(⇒ダメならOracle以前で、ネットワーク環境自体の問題) PING サーバ名で接続できるの?(⇒ダメならOracle以前で、名前解決の問題) という確認が先だと思いますけど。 また、サーバ-クライアントの伝送経路途中にFireWallがありませんか? (FireWall機能を持つハードが途中にないといえるかどうか。) TRACERT サーバ名 で、経路のIPアドレスが順番にでてきます。それらがHUBやルーターだけで、 フィルタリングしていないことを確認する必要があります。 また、サーバおよびクライアント上の対ウイルスソフトも、特定のポート番号を禁止する設定には できますが、ポート1521の接続の許可はしていますよね? ・・・ >C:\Windows\System32\LogFiles\Firewall\pfirewall.logに接続がブロックされたことが >ログとして出力されると思いますが、出力されませんでした。 とありますがこれは、サーバのこと?それともクライアントのこと? また、 >サーバーでは同様のユーザ(SYSTEMユーザ)とパスワードでデータベースに接続できることは >確認できています。 というのは、TCP/IPで接続していますか? というのも気になりますが。(他の接続方法で接続されていてうまくいっていても、 ユーザー名が正しく設定されていてログインできるという証明にしかなりません。) サーバー上で、TCP/IPでうまく接続できているのなら、そのTNSNAMES.ORAとクライアントの TNSNAMES.ORAを比較すれば、問題が分かるかもしれません (Oracle Net Configration Assistantの設定内容を見比べてもいいです。) ## と、とりあえず思いついたところだけ。 ## 上記がすべてクリアなら、listener.oraとtnsnames.oraの記述が不整合を起こしているのかな? ## (それぞれGUIで設定されているかもしれませんが。) ## という感じです。
- lupin-333333
- ベストアンサー率31% (294/933)
もう一つおまけ。 OS(%Systemroot%\system32・・)以下のファイルに在る、tnsnames.ora, DB HomeのDB設定ファイル等の、ポート設定を確認する事(もちろんGUI上でもかまわないが、この辺のミスならGUI上みてもわからないでしょう)。サービスが起動したら netstat -abo などと使用指定ポートを確認(サービスが起動していたら)。起動していなくても、誰がどのポートを使用しているか確認できる。
- lupin-333333
- ベストアンサー率31% (294/933)
いや、まてよ >OracleDatabase11gR2をインストールし、クライアントマシンから Oracle Net Configration Assistantでネットサービス名の構成をする際、以下のエラーが出て 接続できません。 初期の設置問題???? だったら http://shodai2006.mydns.jp/oracle/oracle.html である場合もありますね。ポーと変えたり、設定していないのでは??? まさか、そんなケアレスミスなんて・・・・ よくあるんですよね。TNSとか、手動でファイルいじる方に・・・ またポートの設定がわからず、1521 ,1512 ,1513とか、まあ、いろんなところに(GUI上で)違うポートを指定してしまったりと。 そりゃ、TNSのサービスから見ると、知らない所に接続しに行くわけですからタイムアウトするわなあ。
- lupin-333333
- ベストアンサー率31% (294/933)
この様なログは、2次的な場合もあり、その前後、及び、他のログ、例えばOSとか、クライアントツール等の(Oracleに関係したツール及びネットにアクセスするツール)ログ及び動作を精査して、総合的に検証する必要があります。 まずピンポイントで、そのエラー内容の趣旨を拾います。 http://search.yahoo.co.jp/search?b=1&n=10&ei=UTF-8&fr=ie8sc&p=%22%E6%8E%A5%E7%B6%9A%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82%A6%E3%83%88%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%22+%22Oracle%22 http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/network.102/B19208-02/troublestng.htm#801319 キーワードは「接続を確立して認証を完了するのに失敗した」「、ネットワークまたはシステムの遅延が原因」「当なクライアントがデータベース・サーバーにDoS攻撃」です。 ここでよく「DoS攻撃」というと、「そんなのありませんでした」なんて答える馬鹿SEや運用オペレーターがいるが、ここで言いたいのは、DoS攻撃されると、マシンの状態はどうなりますか? と言うことです。そう、重たくなりますね。外からの接続が、困難に成りますね。内部では、以外にコマンドとかスムーズに実行される場合もあります。そうでないときもありますが、DoS攻撃をうけているような状態がマシンにあるのではないですか? と言う事を、このヘルプではいっています。 なので、いろんな事を一つづつ検証しましょう。と言うことです。よくあるのが、クライアントツール(Webも含む)からの多重、しかも重たい操作のリクエストです。例えば、検索キーワードに「*」などを使って、1000万以上件ヒットして表示するようなリクエストが、5、6回つづけてハングさせたなんていう馬鹿オペレーターがいました。 これは、チューニングでも間に合わない場合があります。これとは逆で1分間でキャッシュが効かないリクエストが、1万件ぐらいあったとか(もう、これは攻撃ですよね) ということで、上記の内容も、犯人を特定する事を前提として記載されています。 なお、これらは当然OSの設定にも関係します。 >よって、ポート1521はファイアーウォールに到達する前に、どこかで遮断されているように思われます。 と判断するのは、まだ検証がたりません。 http://www.atmarkit.co.jp/fdb/rensai/ora_admin/08/oraadmin08_01.html 上記の検索リストにあるサイトですが、検証例をしめしています。「そのほかにデータベースサーバまで届かないケースとして、」として、そのエラーをあげています。意味違うのわかります? 「どこかで遮断」とありますが、自分自身で在る可能性も有ります。つまり外から見た場合、接続できないとう状態がつづていいる。だれかが、にぎったまま。 Oracleに関係したものが、何がうごいていて、何が接続しにきて、誰なのか、全部把握してから、検証のための想定をしましょう。「何が」「誰が」とは、プロセス単位、スレッド単位、ユーザー単位、ポート単位、など全てです。
お礼
ご回答ありがとうございます。 ご教授頂いた内容を参考に、もっと細かく問題を切り分けながら検証してみます。
お礼
ご回答ありがとうございます。 ケアレスミス等無いように今一度確認いたします。