• ベストアンサー

Oracle8iでポートの固定

こんにちは、honiyonです。  ファイヤーウォール越しにOracle8iに接続したいと考えています。(クライアントソフトは  ADO+ODBCで接続します。)  それでポート不定は困るので、ポートを固定したいと考えています。  しかしサーバー側の設定は一切変更したくありません。  tnsnames.oraファイルで xxxx = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = サービス名) (SRVR = DEDICATED) ) )  とすることでサーバーの設定を変更せずにポートを1521のみに固定出来るという情報もありましたが、実際に試したところではポート不動のままでした。  もし、クライアント側の設定のみで対処出来る方法がありましたら是非ご教示ください。   よろしくお願いします(..

  • Oracle
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
回答No.1

>クライアント側の設定のみで対処出来る方法がありましたら是非ご教示ください。 クライアントだけの変更では、実現不可能。 (サーバサイドの変更が必須)

honiyon
質問者

お礼

こんにちは、honiyonです。  ご回答有難うございますm(_ _)m  クライアント側のみで実現する方法は無いのですね。  う~ん、残念です。  有難うございました。

その他の回答 (2)

回答No.3

>#2 >私が勘違いしているだけなのかも知れませんが、 勘違いと言うより、思い過ごしだと思いますよ。 サーバを変更したくないので、クライアントのtnsnames変更したけど、 うまくいかない、なんとかならない?という趣旨ですから。 >(サーバ側のtnsnames.oraはサーバ上のアプリが > 他のサーバにあるOracleインスタンスにつなぎにいく場合に使用されるものです) この2行は適切ではないように思います。 サーバ上のtnsnamesは、 ・サーバ上で稼働するクライアントが、自/他のサーバ上にインスタンスに接続する際に使用する。 ・オラクルインスタンスが、自/他のサーバで動作するサービスに接続する際に使用する。 (自サーバ上の外部処理や(自他のサーバ上の)他のインスタンスなど) 誤解が生まれなければ、それで良い、それだけの話ですが。 本題ですが・・ >クライアント側のみで実現する方法は無いのですね。 8iシリーズは、クライアント”だけ”の変更では絶対に不可能ですが、 サーバ側の変更は、システム環境変数1つを設定するだけですよ?

honiyon
質問者

お礼

こんにちは、honiyonです。  お礼が遅くなり申し訳ありません。  ご回答ありがとうございましたm(_ _)m  仰るとおりサーバー側の変更は技術的には難しいものではありませんが、私の手の届かない場所にあるもので...  ありがとうございました。

回答No.2

私が勘違いしているだけなのかも知れませんが、 クライアントからサーバに接続しに行くときのポートは あくまでクライアント側のtnsnames.oraを見ていて サーバ側のtnsnames.oraは一切見ていないはずです。 (サーバ側のtnsnames.oraはサーバ上のアプリが  他のサーバにあるOracleインスタンスにつなぎにいく場合に使用されるものです) ですのでクライアント側のtnsnames.oraだけポート番号を 指定すればよいのではないでしょうか? ただし、気をつけなければいけないのがPORT_REDIRECTIONといってリスナへはtnsnames.oraに記述してあるポートでつなぎに行ってその後、専用サーバと再度接続するために自動的に別のポートで接続に行ってしまうという仕様の問題があります。USE_SHARED_SOCKETパラメータをTRUEに設定することによってこれを回避することは可能ですが8.1.7ではR8.1.7.1.4以下でORA-12537が発生して接続できないといった不具合があるらしいので気をつけてください。ちなみに9iであればPORT_REDIRECTIONは行われず終始tnsnames.oraに記述されたポート番号で通信を行ってくれるようです。

honiyon
質問者

お礼

こんにちは、honiyonです。  お礼が遅くなり申し訳ありません。  ご回答有難うございますm(_ _)m  9iであれば意外と簡単に実現出来るのですね。  残念ながら今回は8iですので、(サーバー側は変更せずには)実現不可能という事になりそうです。  ありがとうございました。

関連するQ&A

  • Oracle10gExpressをインストールした後、Oracle8iの接続ができなくなった(ORA-12154)

    お世話になります。 Oracle8iクライアントがインストールされている環境に、 Oracle10gExpressをインストールしました。 Oracle8iでインストールした、SQL Plusからは問題なく接続できるのですが、 AccessにODBC接続させていた、Oracleへの接続がうまくいかなくなりました。 よくわかっていないのですが、 どうも、Oracle10gのtnsnamesを参照しにいっているような気がします。 でも、oracle8iのtnsnames.oraの内容をそのまま、 10gのtnsnames.oraにコピーしましたが、だめでした。 何かご存知の方アドバイスいただけないでしょうか? よろしくお願いいたします。 ●8iのtnsnames.oraでうまくいっていた内容を、10gにコピーした内容です。(内容は変更せずにそのままコピーしました) test.xxx.CO.JP = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = test) ) )

  • ORACLE9i Clientのエラーについて

    初めまして。 今、oracle9iのDBサーバーと、同じセグメントにあるclientをインストしたマシンで接続しようと頑張っているのですが、うまくいきません・・・。 設定としては、tnspingもOK出ているのですが、clientから sqlplus ID/PW@service_name で入ると 「ORA-12541 TNS リスナーがありません」 が出てしまって接続できません。 接続先のDBサーバーのリスナーも上がっているのは確認しています。 clientで接続する際には、DBサーバー側のlistener.oraも設定し直す必要があるのでしょうか?それとも他の設定ファイルを編集する必要があるのでしょうか? それとも、client側もリスナーあげなきゃいけないのでしょうか?? ちなみに今回設定をしたのは、client側のtnsnames.oraだけです。足りないのがあれば教えてください。よろしくお願いします! (↑すみません勉強不足で。。)

  • Oracle9iにて接続ホストを変更したい場合

    あるデータベース兼アプリサーバに接続しているクライアントより、 テスト環境用として構築した全く同じ環境の別サーバに接続させようと思い、 以下のtnsnames.oraの「(HOST= )」をテスト用サーバのホスト名に変更しましたが、「ORA-12535: TNS: 操作はタイムアウトしました。」が発生します。 AAAAAAA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = BBBBBBB) (PORT = 1521) ) ) (CONNECT_DATA = (SERVICE_NAME = CCCCCCC) ) ) AAAAAAA_ADMIN = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = BBBBBBB) (PORT = 1521) ) ) (CONNECT_DATA = (SERVICE_NAME = CCCCCCC) (SERVER = dedicated) ) ) 他に何か変更するファイルがありましたでしょうか? ご存知の方がおられればご教示いただけませんでしょうか? 宜しくお願いします。

  • Oracle10g から 11g へ接続しようとしていますが、

    Oracle10g から 11g へ接続しようとしていますが、 「ORA-12541: TNS: リスナーがありません。」 と表示されます。 例)以下の環境で、「SQL/PLUS」を使用して、 ユーザ名/パスワード@NEWDB でログオンすると発生。 原因が分かる方がいらっしゃれば御教授願います。 (サーバ側は新規で11gをインストールしました。) 現在の tnsnames は以下のようになっていますが、 「localhost」などの記述に問題ありでしょうか? ■サーバ側:11g(O/S:XP) ※IP 192.168.0.1 WENDY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = WENDY.com) ) ) LISTENER_WENDY = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ■クライアント側:10g(O/S:XP) NEWDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = WENDY.com) ) )

  • デフォルトで共有サーバ接続させるためには

    「tnsnames.ora」に「SERVER」を設定せずにデータベースに接続した場合に、共有サーバ接続(SHARED)にさせたいのですが、専用サーバ接続「DEDICATED」になってしまいます。 データベースの設定としては初期化パラメータに「DISPATCHERS="(PROTOCOL=tcp)(SERVICE=サービス名)」、「SHARED_SERVERS=5」を設定しています。 「tnsnames.ora」に「SERVER=SHARED」を設定すれば共有サーバ接続になります。 「SERVER」を設定せずに共有サーバ接続させる方法をお教えください。 OS : Windows2003 Server Oracle : Oracle9i 9.2.0.5 よろしくお願いします。

  • PHP5でOracle接続がエラー

    Linuxサーバー(Oracle(10.1)+Apache(2.0.52)+PHP(5.0.5)) からデータを参照し、ブラウザで表示するものを作成しようとしています。 PHPからオラクルへ接続テストをしたところ、うまくいきませんでした。 $conn=oci_connect($user,$pass,$db); これがORA-12514のエラーになります。 エラーの原因がわかりません。どういうことを確認すればいいですか? tnsnames.oraとlistener.oraの"HOST"はIPアドレスにしていますが、 リスナーのステータス(コマンド:lsnrctl status) で見た"HOST"は<*.co.jp>というふうになっています。 これは問題ないのでしょうか? (tnsnames.ora) <$DB> = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <IPアドレス>)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =<$db>) ) ) (listener.ora) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <IPアドレス>)(PORT = 1521)) ) ) (リスナーのステータス) リスニング・エンドポイントのサマリー... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<$db.**.co.jp>)(PORT=1521)))

  • ACCESSとOracleの接続方法について???

    AccessをフロントエンドとしてOracleに接続をしたいのですが・・・InstantClientを使って接続するときの設定は? クライアントをダウンロードしてきてtnsnames.oraの設定までしてあります。 ここまでやってあるのですがOracleに接続する手段がこの先どうしたらいいかわかりません。 会社の先輩にこのMDBあげるからつないどきなーと渡されましたが↓ どうしたらいいかよくわからないので教えてください。 このほかに設定する必要ってありましたでしょうか?

  • SQLPLUSでサーバー名&DB名直接指定??

    本来はSQLPlusで接続する場合には下記のようになると思います。 sqlplus system/manager@orcl ←tnsnames.oraに設定 でもでもでも!! 理由がありtnsnames.oraの変更が出来ません! でも新しく「test_orcl」というのを作って接続したいのです! とっても困っています。 もしtnsnames.oraに書き込まなくてもサーバー名などを指定して 接続する方法をご存知の方がいらしたら教えてください! ちなみに接続先は別サーバです。 どうかよろしくお願い致します!!!

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

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

  • SQL*PLUSでホスト名を入れるとエラー

    よろしくお願いします。 SQL*PLUSで、ホスト名を入れると、ORA-12154エラーとなってしまいます。 ホスト名を入力しないと、正常に接続可能です。 ちなみに、DBはローカルにあります。 以下、TNSNAMES.ORAの内容です。 =========================== ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = cl-000788.iafc.local )(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) ================================= どこか、設定が間違っているのでしょうか? よろしくお願いいたします。