2004.10.20

Oracle - WindowsXP SP2への対処

テスト環境用等で WindowsXP(SP2)マシンに Oracle9i(サーバ:Personal)をインストールすることが
あるかと思うが、この場合 Oracleは WindowsXP-SP2の『Windowsファイアウォール』の影響もあって、
そのマシンの外部からはそのままでは使用できなくなってしまう。


どうすれば使えるようになるかというと、以下の3つの設定を見直さなくてはいけない。

 1.コントロールパネル → Windowsファイアウォール
   → 『例外』タブ → 『ポートの追加』ボタン
  TCP-1521 を追加する。(名前は自由に付けてよい)

 これでマシン自体がOracleプロトコルの開始の通信を受け付けるようになる。
 通常は Windowsファイアウォールで、受信パケットを全く受け付けなくなっているので、
 例外を設ける必要があるということ。


 2.以下のレジストリを追加する
  [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
  USE_SHARED_SOCKET(文字列値) = TRUE

 サーバー側の通信ポートを共有する設定にする。
 詳しくは省くが『リダイレクション』を抑えてサーバー側のポートを共有化するのだそう。

 ただ、これが合点がいかないのだが、試しに使っていた 9.2.0.1 では自分が見渡す限り
 この操作に相当する管理インターフェイスを探しても見つけることはできなかった。
 レジストリを直接いじる操作になる。

 なお、Windowsではレジストリだが、Unixの場合は環境変数に設定する値だそう。


 3.OracleHome\NETWORK\Admin\tnsnames.ora ファイルを編集する。
  PROTOCOL / SERVICE_NAME を見て、メインで使用しているサービス名を見つけ出し、
  SERVERを DEDICATED にする。

ILOVEXxx.ILOVEX.CO.JP =
 (DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = ilovexXX)(PORT = 1521))
  )
  (CONNECT_DATA =
   (SERVER = DEDICATED)
   (SERVICE_NAME = ilovexXX)
  )
 )

 クライアントから接続するサーバーのタイプを『共有サーバー(SHARED)』ではなく
 『専用サーバー(DEDICATED)』にしなくてはいけない。
 (デフォルトがいずれになっているのかは環境に依存するようだが)
 『共有サーバー』にした場合は、デフォルトの TCP-1521も使いながら、
 それ以外の通信用ポートも必要になるため。


ここまで設定してようやく通常の接続が可能となる。

なお、Oracleに付属している TNSPING.exe という設定確認ツールがあるが、
これはあくまでもTCP/IPでの ping相当のものであって複雑な複雑な往復通信をするわけではない。
よって、TNSPINGで接続が確認できたからといって通信が全くうまくいくとは限らない。
少なくとも上記設定は SQL/plusで接続できるかどうか試してみる必要があるようだ。


上記は Windowsファイアウォールによる制限を避けるための設定だが、一般的に Firewallや
NAT(NAPT)/BOXを越えたような場所に Oracleがある場合は、同様の設定が必要になる。

トラックバック

この一覧は、次のエントリーを参照しています: Oracle - WindowsXP SP2への対処:

» SQLServer2000 - WindowsXP SP2への対処 送信元 ITプロフェッショナル部
念のため、『楽』と言われる SQLServer2000の対処も書いておく。 テ... [詳しくはこちら]

コメント (3)

早速試しました。
私のXPSP2端末のORACLEも、
ばっちり繋がるようになりました。

この点だけ見ると、1433を開けるだけで済む
SQLServerのほうが楽でいいですね。

もともとの発想(想定規模など)が違うからでしょうから、設定の仕方さえちゃんと明記されていれば、いずれが良いとか悪いとかではないと思いますが、
ただ、レジストリの操作というのがどうも腑に落ちないんですよねぇ・・・。

参考になりました。
ありがとうございました。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
ichikawa