• 締切済み

ApacheWebサーバがあるサーバから,別サーバにあるOracle8iデータベースに接続するには

Webサーバ(ApacheWebサーバ)がインストールしてあるサーバとは別に, データベース(Oracle8i)がインストールしてあるサーバに接続したいのですが, とある文献に, ==================== Oracleの場合、データベースへの接続は「ocilogon関数」を利用します。 この関数 は、下記のように接続するデータベースとユーザーを指定します。 関数の返り値と して、接続IDが返されるので、そのIDを変数に受け取るようにしておきます。 ocilogon("ユーザー","パスワード","接続文字列"); // Oracleとの接続 $conn = OCILogon("scott", "tiger", "orcl"); ===================== という記述がありました. このような記述だけで,別サーバにあるOracle8iへ接続可能なのでしょうか? さらに, ===================== 「また、ここで「接続文字列」を指定することによって、  Webサーバとは別のサーバで稼働 しているデータベースへの接続も可能です。」 ===================== という記述もあります. 接続文字列(orcl)を入力しただけで,別サーバにあるデータベース に接続することは可能なのでしょうか?私が思うにはデータベースサーバの IPアドレスなどの情報がないと無理な気がするのですが,どうなのでしょうか? よろしくお願いします.

  • PHP
  • 回答数2
  • ありがとう数2

みんなの回答

回答No.2

Oracleとの接続 $conn = OCILogon("scott", "tiger", "orcl"); の「orcl」にあたる部分はホスト接続文字列で、 この名前は/oracle_home/network/admin/tnsnames.ora で定義されています。このtnsnames.oraにターゲットとなるホストのIPアドレスやポート番号、サービス名等が書いてあります。

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 Oracle 8iは接続マシンからOracleマシンへの接続にNet8iというものを使う。なので、そのWebサーバにはOracle ClientをインストールしてNet8iの設定を行う必要がある。で、このNet8iの設定の際にIPアドレスを指定するので、各種接続ライブラリではこの接続文字列だけで接続できるわけだ。 Net8iの接続設定の主な設定項目 ・接続文字列(プログラムからはこれを使う)。 ・接続先IPアドレスなど、Oracleサーバを特定できるもの。 ・接続先グローバル・データベース名。 Oracle Clientの設定でここまで行うので、プログラムでは接続文字列のみで良い。

関連するQ&A

  • ORACLE_SIDについて

    一つのサーバAがあったとします。このサーバに対してデータベース名が1,2,3,4,5というものが5つあったとします。この5つのデータベースに対して一つずつ、ORACLE_SIDが存在し、すべて同じorclだったとします。このようなことは可能でしょうか?また、可能であればクライアントからどのようにして接続先を選ぶのでしょうか?教えてください。

  • VB.NET Oracle接続 32、64bit

    VB.NET 2010でOracle11gに接続するプログラムを作っていますが、 接続方法がいまいちわからずに困っています。 プログラムを動かすサーバーはWindows Server 2008 R2の64bitだったので、 Oracle Clientも合わせた方がいいのかなと思い、64bit版をインストールしました。 ASP.NETのWEBアプリでは以下の接続文字列を用いてADO接続できました。 パラメータ値は例です。 (Web.configに記述) <connectionStrings> <add name="oracle" connectionString="Provider=OraOLEDB.Oracle;Data Source=db1;Password=pass1;User ID=user1" providerName="System.Data.OleDb" /> </connectionStrings> 次に、コンソールプログラムを作成し、同じサーバーで上記と同様の接続文字列で 接続しようとしましたが、エラーとなり接続できませんでした。 いろいろ記述を変えても接続できませんでしたが、最終的にOracle Clientの 32bit版を64bit版と違うフォルダにインストールし、以下の接続文字列で接続 できました。(INIファイルに記載) ConnectionString=Provider=OraOLEDB.Oracle;Data Source=db1;Password=pass1;User ID=user1 この状態でWEBアプリの方は何を使っているのかと思い、64bit版のインストールフォルダを リネームしたところ、WEBアプリの方は接続できなくなりました。 現状では32bitと64bitのOracle Clientが両方必要な状況ですが、本来ならどちらかだけで すむと思います。 32bitと64bitで接続文字列が変わるという情報は得られませんでした。 何がまずいのでしょうか? 最初から32bit版をインストールすれば良かったのでしょうか。

  • データベースの起動について

    現在、サーバーAの1台が起動しoracleのデータベースを 運用しています  そこに、サーバーBを起動し、oracleのデータベースの 試験運用を実施したいです 質問(1)  各サーバーが下記設定の場合、 サーバーBを起動することにより、サーバーAにて起動して いる本来のデータベースに問題が発生するでしょうか? 質問(2)  発生する場合、どのように回避すればいいので しょうか? ご存知の方、ご教示の程宜しくお願いします サーバーA(本運用)  OS:windowsNT4.0  Oracle:Oracle8i(8.1.7)  グローバルデータベース名:seisandb  SID:seisandb  接続文字列:seisandb  コンピュータ名:test01  IPaddress:192.168.1.10 サーバーB(試験運用)  OS:windowsNT4.0  Oracle:Oracle8i(8.1.7)  グローバルデータベース名:seisandb  SID:seisandb  接続文字列:seisandb  コンピュータ名:test02       ←Aとの違い  IPaddress:192.168.1.11    ←Aとの違い

  • Oracle10g for Solaris への接続で ORA-12154 エラー

      お世話になります。 仮想環境(VMware)上にある Oracle10g for Solaris へクライアントPC(WinXP SP2)からSQL*Plusで 接続を行ったところ問題なく成功するのですが、サーバー機(WindowsServer2003 R2)から接続を行うと ORA-12154 TNS:指定された接続識別子を解決できませんでした というエラーが出て接続できませんでした。 クライアントPCで接続に成功した時と同じユーザー名、パスワード、 ホスト文字列を入力していますのでその辺の間違いではないようです。 サーバー機からOracleがインストールされている仮想環境へのpingは通っています。 サーバー機のブラウザ(IE6)からOracle Enterprise Managerへのログインも成功します。 ※IEのセキュリティ設定の「信頼済みサイト」に追加後に成功。 ちなみにサーバー機は WindowsServer2003 R2 をインストールしたまま (セキュリティ関係の設定は特に変更していない)の状況です。 Windowsファイアウォールも無効になっています。 何か WindowsServer2003 のデフォルトのセキュリティ設定が影響して 接続できないのかと思っているのですが・・・何が原因なのでしょうか? よろしくお願いいたします。 【環境】 クライアントPCが1台、サーバー機が1台、サーバー機上にVMwareでの仮想環境構築。 仮想環境にはSolaris10、Oracle10g for Solarisがインストール済み。 ●クライアント :PC_A cpu :Intel C2D(32bit) os :WinXP SP2 .net framework :1.1、2.0 Oracle Client for Win(32bit)導入済み ●サーバー機 :SVPC_A cpu :Intel (64bit) os :WindowsServer2003 R2 .net framework :1.1、2.0 Oracle Client for Win(32bit)導入済み Windowsファイアウォール無効 ●VMwareでの仮想環境(SVPC_A上に作成) 仮想サーバー :VMSVPC os :Solaris10 database :Oracle10g for Solaris(64bit) 【状況】 クライアントPC(PC_A)のウェブブラウザ(IE6)からOracle Enterprise Managerへのログイン可能。 SQL*Plus での接続も問題なし。 (ログオン時の入力例)   ユーザー名:system   パスワード:xxxxxxxxxx   ホスト文字列:ORCL_VMSVPC サーバー機(SVPC_A)のウェブブラウザ(IE6)からOracle Enterprise Managerへのログイン可能。 SQL*Plus での接続でエラーが発生。 (ログオン時の入力例)   ユーザー名:system   パスワード:xxxxxxxxxx   ホスト文字列:ORCL_VMSVPC

  • OleDbConnectでのデータベース接続

    開発言語VC#2008 OS:WindowsXP C#初心者です。 共有サーバーにインストールしたオラクルデータベース10gに オンライン上の別のPCから接続をしたいのです。 なお、このPCにはオラクルはインストールできません。 OleDbConnectionを使用して接続をするにはどのようにすればよいでしょうか? サーバーのIPアドレス、オラクルのユーザ名(ID?)、パスワード、データソース名、データベース名、タイムアウト値などを指定して接続をしたいのですが、分からないです。 いろいろ調べてはみたのですがほとんど情報は得られませんでした。 もし、接続方法をご存知の方がおられたらご教授願えないでしょうか? 宜しくお願いします。

  • PHP5とORACLE10の接続方法

    参考意見を頂ければと思い質問しました。 現在PHP5+ORACLE10gRelease2でDB接続をしようと思っています。 またORACLEを使用したことがなく調べている状況です。 Oracle8関数の使用やPEAR、PDOなど何種類かあるよう ですが、実際現時点でどういった接続方法が一般的なのでしょうか。 環境としてはLinuxでwebサーバ、DBサーバを分けて接続予定です。 アドバイス等ございましたらよろしくお願いします。

    • ベストアンサー
    • PHP
  • Oracle10

    Oracle8やOracle9を今まで使っていたのですが、 Oracle10を今回インストールすることになりました。 Oracle8,9ではデータベースの作成後、ユーザーの作成を簡単に行えたのですが、今回うまく行かずにいます。 10でユーザーの作成を行おうとしたら、どのツールからどの様にして行えば良いのでしょうか? ご助力宜しくお願い致します

  • データベースの作成

    Oracleを勉強し始めました。 今まではWebアプリにAccessを使っていて、Oracleに移行したいと思います。 とりあえず、データベースを作成するのだと思ったのですが、 インストールを終えた状態で、orclというデータベースがすでに出来ていました。(インストールは、マシンを設置した部署の方がしました。) 今後は他の部署もこのOracleにデータを保存するという予定らしいです。Oracleのインストールしたサーバーには、リモート接続が可能で、 管理者権限のパスワードも教えてもらっています。 もし、私がアクセスの住所録というデータベースファイル(jyuushoroku.mdb)を移行したいとすると、jyuushoroku というデータベースを新たに作成するのですよね? データベースは複数にあっても構わないのですか?アクセスと違い、データベースを作成する時にとても大掛かりなのでとまどってしまいました。 インストール時に作成したorclというデータベースには、パスワードが 設定されていて、接続ができません。自分の作成したデータベースには、独自のパスワードを設定して、それを使って接続すればいいのですか?ほんとに初歩的な概念がわからずに申し訳ないです。 よろしくお願いします。

  • サーバ上のOracleデータベースにアクセスできず

    端末のアプリケーションからサーバ上のOracleデータベースにアクセスしていたのですが、 下記Aの作業を行った後に端末のアプリケーションからサーバ上のOracleデータベースへアクセスしたところ、 「サーバと接続できません。ORA-12560:TNS:プロトコル・アダプターエラーが発生しました」 とのメッセージが出ましたが、解消方法がわかりません。 ●Aの作業 ・Norton Antivirusをインストール ・TCP/IP詳細設定のWINSタブのWINSアドレスに昔のIPアドレス(128~始まる→現在は192から始まるものを使ってます)を削除。 その後、Norton Antivirusが影響しているのかなと思い、削除しましたが症状は変わりません。 なお、  ・OralceServie***  ・OralceOraHome90TNSListener  ・OralceOraHome90Agent はサービスから起動や停止をしても正常に動作します。 また、OSは2000サーバーSP2ですが、Oracleはヴァージョンの調べ方がわかりません(当方素人)。 サーバ自体は2002年9月頃に購入しており、同時に導入しているようです。 管理者が勝手に退職してしまい、当方を含めて職場にOracleに明るい物がおらず、困っています。 どなたかご教授いただけると幸いです。

  • Oracle10gのデータベースの移行について

    Oracle10gのデータベースの移行について質問です。 Oracle10g が稼動しているサーバ機があります。 老朽化の為、新しいハードウェアへ入れ替える事になりました。 OSは、入れ替え前も入れ替え後もWindows Server 2003です。  DB: Oracle10g → Oracle10g  OS: Windows Server 2003 → Windows Server 2003 現行のサーバ上では4つのインスタンスが稼動しています。 新しいサーバ上に、同じ構成でそのまま移行する方法を検討していますが、下記のような方法で大丈夫なものでしょうか? (1)新しいサーバ上にOracle10gを初期データベースなしでインストールする (2)新しいサーバ上で新規のOracleインスタンスを4つ作成する (ORADIMツールを使用) (3)現行のサーバ上の各インスタンス・Oracle関連サービスを停止し、オフラインでデータベース関連のファイルのバックアップを取得する (4)現行のサーバから、新しいサーバへ、オフラインで取得したバックアップファイルを転送する (5)新しいサーバ上の各インスタンス・Oracle関連サービスを停止する (6)新しいサーバ上から、(3)で取得したファイルと同じファイルを削除する (7)新しいサーバ上で、バックアップしたファイルを現行のサーバと同じ位置に配置する (8)新しいサーバ上のOracle関連サービスと各インスタンスを起動し、動作を確認する どなたか、回答宜しくお願い致します。

専門家に質問してみよう