• 締切済み

複数企業が利用するOracleの構成について

複数社に納入しているC/S型パッケージ業務ソフトを、 ASP化しようと検討しています。 (現状は各顧客先にサーバとクライアントを  設置していますが、今後はサーバのみ1台に集約して  データセンタに設置し、顧客側にはクライアントのみ  設置する予定です。) そこでご相談なのが、Oracleのデータの持たせ方なのですが、 1サーバの中に顧客毎にインスタンス(データベース)を 作成するか、1インスタンスに顧客分ユーザを作成して、 ユーザ毎にスキーマをもたせるか悩んでおります。 セキュリティや個別メンテナンスを考慮すると前者の方が 良いのでしょうが、予算の関係から可能であれば後者を 採用したいと考えております。 そこでそれぞれのメリット・デメリットはどういった事が 考えられるでしょうか?(特に1インスタンスとした場合の デメリットが問題ですが。) よろしくお願いします。

  • Oracle
  • 回答数2
  • ありがとう数1

みんなの回答

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.2

(1)1サーバの中に顧客毎にインスタンス(データベース)を作成する (2)1インスタンスに顧客分ユーザを作成してユーザ毎にスキーマをもたせる >セキュリティや個別メンテナンスを考慮すると前者の方が良いのでしょうが とおよそ認識しておられるとおりですし、ANO1の方が書いておられるとおりです。 で、追加するポイントとして、 障害発生時にはどうなるかという点くらいですか。 (1)なら、ハードやOSレベルの障害でなければ、1インスタンス=1ユーザがダウンするだけ。 (2)なら、全ユーザがダウン。 最近はあまりないですけど、セッションが切れないとかだんまりになっているとかが おきたときにインスタンスを立ち上げなおしたりしたくなることはあります。 必ずサーバを再起動するとか考えておられるなら、(1)でも、全ユーザダウンなので一緒。 あと、資源の利用は(2)のほうが効率的であり、作業の手間も少ないのですが、どれくらい良いかは、 テーブルの持たせ方しだい。 ユーザ毎に別テーブルを持たせて、ユーザ毎にシノニムかビューを作って、同じ名前でプログラムから アクセスさせる方法もありえます。あるいはユーザ毎に同じ名前の別テーブルを作る方法も。 これらだと、効率的なのは、単にインスタンスに関連する資源だけ。 全ユーザが同じテーブルを参照するようにすると、全テーブルに会社区分を入れて、それを参照して 処理が動くようにしないといけないので今がそうなっていないと作業の手間はかえって増えます。 それより、ちょっと気になったのが、 >複数社に納入しているC/S型パッケージ業務ソフトを、 >ASP化しようと検討しています。 >(現状は各顧客先にサーバとクライアントを > 設置していますが、今後はサーバのみ1台に集約して > データセンタに設置し、顧客側にはクライアントのみ > 設置する予定です。) どうされるのかよくわからない書き方ですが、 DBサーバのみデータセンタにおいてクライアントから直接アクセスさせるつもりですか? クライアントとやりとりするサーバはDMZ(非武装地帯)といわれるサーバへの攻撃に対して抵抗力の弱い場所 (今はそんなに弱くないかもしれませんが、それでも万一のときに大丈夫なように内部ネットワークと分けているのが普通。)におかざる得ないので、 DBサーバをおくと攻撃受けてデータ漏洩事件とか比較的簡単に起きてしまいますが。 APサーバが間に入っているのだが記載を省略しているのならいいのですが。

  • entree
  • ベストアンサー率55% (405/735)
回答No.1

既にご自分でそれなりの回答を出されていません? まずデメリットはセキュリティの低下。 クライアントが直接DBに接続しない場合、アプリによほど致命的な不具合がない限り 大きなリスクになるとは思いませんが。 次に、DBメンテナンスを顧客毎にできない。DBだけ止めてメンテナンスということが ないのであれば全く問題にはなりませんが。 その他、小さな問題でしょうが、1顧客1DBユーザならいいですが、拡張されて 1顧客複数DBユーザにしたくなったとき。パブリックシノニムなどが使えません。 あと、性能面では共有できない大きな1つの共有プール、バッファキャッシュに なるので複数インスタンスに比べると検索効率が悪く若干不利だと思います。 逆に、ログバッファなどは複数インスタンスの場合に比べると効率的になると思います。 メリットはメモリやディスクの使用量が少なくて済むこと。 ディスクについて言えば、システム系の表領域やREDOログが1DB分なので効率的と 言えるでしょう。これはI/O性能にも関わってくる問題です。 なので、自分ならデータ量が少なければディスクの無駄が多いため1つにまとめて、 多ければディスクの無駄は無視しうるため別にすることを検討するかな。 もちろん、別にするにはそれなりのリソースを必要としますし、セキュリティ要件とも 照らし合わせる必要がありますけど。

関連するQ&A

  • oracleのsequenceについて

    oracle masterのオラクル入門の勉強をしています。 知識があやふやなので教えてもらいたいのですが、 オブジェクトであるsequenceにアクセスできるのは 作成したユーザーのみ(そのスキーマ内)? or 複数のユーザー(全てのスキーマ内)でも可能? どちらでしょうか? スキーマの名前が変更されているかもしれませんが、 スキーマとユーザーは同じ意味ですよね?

  • Oracleインスタンスへの接続制限について

    1台のサーバにOracleのインスタンス(A、B)を複数立てた環境において、 クライアント1からはAインスタンスのみ利用可能、クライアント2からは Bインスタンスのみ利用可能とさせる事は可能でしょうか? (クライアント2の利用者にAインスタンスのインスタンス名、  ユーザ名、パスワードが漏れてしまっても、Aインスタンスに  接続できないように制限できればと思っています。) 宜しくお願いします。

  • oracle 10g ユーザやスキーマごとに文字コード指定

    oracle 10g ユーザやスキーマごとに文字コード指定 oracle10g使っています sjis sjistilde euctilde eucjptilde など いろいろ文字コードがあります 文字コードごとに それぞれインスタンスを別に しているのですが 1個のインスタンスに統一したいです ユーザやスキーマやテーブルなどで個別に文字コードを指定することは できないのでしょうか

  • Oracleのアクセス権制御について教えてください

    Oracleのアクセス権について教えてください。 下図にあるようにTEST1というユーザがSERVE1というORACLEインスタンスにアクセスできるがTEST2というユーザはSERVE2にアクセスできないようにしたいです。 ユーザ   ソフト   サーバ  インスタンス test1    A     SERVE1    ADB test2         SERVE2     BDB Oracleでtest1はアクセスできないという制限を設けることはできました。 しかし、あるORACLE検索ソフトはサーバで動くので、全てサーバのユーザ名でアクセスされるため制限ができません。 お手数ですが解決策を教えてください。

  • データベースソフトOracleについて

    データベースソフトOracleを購入しようとしているのですが、 種類がいろいろあってどれが良いのかわかりません。 アドバイスをお願いします。 使い方 サーバーにOraclaeをいれてクライアント(ユーザー5~10)で使うやり方 です。 サーバー用とかクライアントベースのOracleとかあると思います。 出来ればサーバー用のOracleでバージョンと金額がわかれば教えてください。

  • オラクルに詳しい方、教えてください

    Windows2000サーバにOracle8iをインストールしています。 クライアントからサーバに対して オラクルのインスタンスとリスナーが起動していることを確認したい場合、 oracle.exe と listener.exe が起動していることを確認できれば 「OK」と言えますか? 「データベースに接続できる状態」と言えるでしょうか? 毎日の定例作業として行う予定です。 あまりオラクルに詳しくないので、 知識のある方、ぜひ教えてください。

  • oracle接続(別サーバー)

    どなたか教えて下さい。 ASPで登録や更新系のプログラムをSQLServer(サーバー内)へ 行っています(ODBC)。 そこで、ある検索を他サーバーのoracleへ行いたいのですが、 どのようにしたらよいでしょうか? oracleのクライアントをサーバーにインストールして、 ODBC登録で接続?で大丈夫でしょうか??

  • Oracle11gのインストールについて

    RedHatLinux5に対する、 Oracle11gのインストールから データベース作成、インスタンス作成、スキーマオブジェクトの作成など、 詳細に解説している書籍やサイト等はないでしょうか? OEMやOUI,DBCA等を使えば簡単なのですが 職場環境の制約上、GUIを使用したツールは一切使うことができないので 全てCUI上にて作業する必要があります。

  • DBサーバーへのoracleインストールについて

    oracleをDBとして使用する 2つシステムをサーバーへインストールし利用する予定なのですが OS、Oracleのインストール後、インスタンスを2つ(環境ごとに)作成する予定です。 インスタンスを作成する際、リスナーの設定など。 何か注意すべき点等ございますでしょうか? 初歩的な質問で申し訳ございませんが ご教示頂けると大変有難いです。 OS / Windows2008server oracle / 11g よろしくお願い申し上げます。

  • Oracleでデータのコピーをしたい。

    別のマシンのOracleをエクスポートしてインポートし自分のマシンにデータを移動しようとしているのですが なぜかインスタンスにドメインのようなおまけがついてしまいます。 例:[データベース名]→[データベース名].us.oracle.com Oracleのバージョンは8.1.6.0.0です。 init.oraというファイルの中を見ると global_names = true という設定値が怪しいと思い、いろいろやってみましたがわかりません。 クライアントサーバではなくスタンドアロンにしたいんです。 良い知恵ありましたら些細なことでもいいので回答ください。