TOP書籍連動> OracleとPHPを別のサーバに配置する
SQLインジェクション
OracleとPHPでウェブサイトを構築する

第3回:PHP&Oracleの利点と欠点

著者:Robert Mark   2006/2/22
前のページ  1  2   3  次のページ
OracleとPHPを別のサーバに配置する

   もしOracleのライセンスにお金をかけるのであれば、データベースをアプリケーションのサーバとは別のハードウェアに配置するのはよい考えです。特定のデータベース専用のサーバを設置するということは、データベースサーバは1つのデータベースアプリケーションが単独で実行されるということを意味します。そうすることで他のサーバアプリケーションによる余計な処理がなくなるので、パフォーマンスを向上させることができます。

   PHPはメンテナンス性を考えるとデータベースとは別のサーバで使用するべきです。メンテナンスが楽になるというのは、運用していく上で、PHPとOrcleで利用可能なアップグレードやパッチを当てる必要があるからです。Webサーバをリブートする時に、Webサーバと同じサーバにデータベースが稼働していると、データベースサーバまでがダウンすることになってしまいます。

   リモートのデータベースサーバを使用するのであれば、Oracleインスタントクライアントを含むOracleクライアントをPHPが実行されるサーバにインストール、設定を行いデータベースにアクセスします。データベースが大きくなってきたのであれば、Oracleデータベースサーバはクラスタリングすることもできます。

   クラスタリングはOracle 9i用に開発されたReal ApplicationCluster(RAC)と呼ばれるアドオンをインストールすることで実現できます。この機能を使用することでOracleデータベースはクラスタリングされたサーバでアプリケーションを実行することができます。もしサーバがダウンした場合はアプリケーションは残りのサーバで実行されます。ダウンしたサーバを再度追加する場合にも、残りのサーバをシャットダウンする必要はありません。


ラージオブジェクト

   Oracleの強みの1つは巨大なデータを扱う能力です。LOBデータ型には4種類あります。文字列ラージオブジェクト(CLOB、NCLOB)は4GBまでの文字列データを扱うことができます。バイナリラージオブジェクト(BLOB)は4GBまでのバイナリデータを扱うことができます。そしてBFILEはサーバのファイルシステムに保存されます。

   BFILEで扱えるサイズはOSのファイルシステムに依存します。例えば画像サーバに例に考えてみましょう。一般的にWebサイトは画像をWebサーバのフォルダに保存するでしょう。画像の数が増えてくると、フォルダの数も増えてくるでしょう。

   しかし、何千もの画像を保存して、検索しカテゴリー分け仕様とするとどうなるでしょう。画像ライブラリはボタン、バナー、従業員の顔写真としてWebページで使用するアイコンなど数千の画像を保存しなければならないでしょう。

   いくつかの写真は、公開できない画像を使用することで著作権を侵害しないようにするために、セキュリティの権限を付加する必要があるかもしれません。画像がどこに保存されているかを調べる方法の1つして、データベースのテーブルにユニークなIDを付加して、そのIDと画像が保存されているファイルサーバかWebサーバのパスを保存するという方法があります。

   しかし、ファイルのあるフォルダが変わったり、ファイル名が変更されたりするとデータベースのレコードとの結びつきが失われてしまうという明らかな問題があります。Oracleではデータが実際に存在する場所を示すポインタをテーブルに保存します。LOBデータストレージはCREATE TABLE文内でSTORAGE節で区切られた部分に定義されます。

前のページ  1  2   3  次のページ


Ilia Alshanetsky
著者プロフィール
Robert Mark
ケベックのモントリオールにあるMcGill大学に勤めており、シニアWebプログラマ/データベースプログラマ。主にOracleとPHPを使って、Webサイトを構築している。


INDEX
第3回:PHP&Oracleの利点と欠点
  複数のデータベース名の管理
OracleとPHPを別のサーバに配置する
  画像とデータベースとの結びつき