
複数社に納入しているC/S型パッケージ業務ソフトを、
ASP化しようと検討しています。
(現状は各顧客先にサーバとクライアントを
設置していますが、今後はサーバのみ1台に集約して
データセンタに設置し、顧客側にはクライアントのみ
設置する予定です。)
そこでご相談なのが、Oracleのデータの持たせ方なのですが、
1サーバの中に顧客毎にインスタンス(データベース)を
作成するか、1インスタンスに顧客分ユーザを作成して、
ユーザ毎にスキーマをもたせるか悩んでおります。
セキュリティや個別メンテナンスを考慮すると前者の方が
良いのでしょうが、予算の関係から可能であれば後者を
採用したいと考えております。
そこでそれぞれのメリット・デメリットはどういった事が
考えられるでしょうか?(特に1インスタンスとした場合の
デメリットが問題ですが。)
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
(1)1サーバの中に顧客毎にインスタンス(データベース)を作成する
(2)1インスタンスに顧客分ユーザを作成してユーザ毎にスキーマをもたせる
>セキュリティや個別メンテナンスを考慮すると前者の方が良いのでしょうが
とおよそ認識しておられるとおりですし、ANO1の方が書いておられるとおりです。
で、追加するポイントとして、
障害発生時にはどうなるかという点くらいですか。
(1)なら、ハードやOSレベルの障害でなければ、1インスタンス=1ユーザがダウンするだけ。
(2)なら、全ユーザがダウン。
最近はあまりないですけど、セッションが切れないとかだんまりになっているとかが
おきたときにインスタンスを立ち上げなおしたりしたくなることはあります。
必ずサーバを再起動するとか考えておられるなら、(1)でも、全ユーザダウンなので一緒。
あと、資源の利用は(2)のほうが効率的であり、作業の手間も少ないのですが、どれくらい良いかは、
テーブルの持たせ方しだい。
ユーザ毎に別テーブルを持たせて、ユーザ毎にシノニムかビューを作って、同じ名前でプログラムから
アクセスさせる方法もありえます。あるいはユーザ毎に同じ名前の別テーブルを作る方法も。
これらだと、効率的なのは、単にインスタンスに関連する資源だけ。
全ユーザが同じテーブルを参照するようにすると、全テーブルに会社区分を入れて、それを参照して
処理が動くようにしないといけないので今がそうなっていないと作業の手間はかえって増えます。
それより、ちょっと気になったのが、
>複数社に納入しているC/S型パッケージ業務ソフトを、
>ASP化しようと検討しています。
>(現状は各顧客先にサーバとクライアントを
> 設置していますが、今後はサーバのみ1台に集約して
> データセンタに設置し、顧客側にはクライアントのみ
> 設置する予定です。)
どうされるのかよくわからない書き方ですが、
DBサーバのみデータセンタにおいてクライアントから直接アクセスさせるつもりですか?
クライアントとやりとりするサーバはDMZ(非武装地帯)といわれるサーバへの攻撃に対して抵抗力の弱い場所
(今はそんなに弱くないかもしれませんが、それでも万一のときに大丈夫なように内部ネットワークと分けているのが普通。)におかざる得ないので、
DBサーバをおくと攻撃受けてデータ漏洩事件とか比較的簡単に起きてしまいますが。
APサーバが間に入っているのだが記載を省略しているのならいいのですが。
No.1
- 回答日時:
既にご自分でそれなりの回答を出されていません?
まずデメリットはセキュリティの低下。
クライアントが直接DBに接続しない場合、アプリによほど致命的な不具合がない限り
大きなリスクになるとは思いませんが。
次に、DBメンテナンスを顧客毎にできない。DBだけ止めてメンテナンスということが
ないのであれば全く問題にはなりませんが。
その他、小さな問題でしょうが、1顧客1DBユーザならいいですが、拡張されて
1顧客複数DBユーザにしたくなったとき。パブリックシノニムなどが使えません。
あと、性能面では共有できない大きな1つの共有プール、バッファキャッシュに
なるので複数インスタンスに比べると検索効率が悪く若干不利だと思います。
逆に、ログバッファなどは複数インスタンスの場合に比べると効率的になると思います。
メリットはメモリやディスクの使用量が少なくて済むこと。
ディスクについて言えば、システム系の表領域やREDOログが1DB分なので効率的と
言えるでしょう。これはI/O性能にも関わってくる問題です。
なので、自分ならデータ量が少なければディスクの無駄が多いため1つにまとめて、
多ければディスクの無駄は無視しうるため別にすることを検討するかな。
もちろん、別にするにはそれなりのリソースを必要としますし、セキュリティ要件とも
照らし合わせる必要がありますけど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(開発・運用・管理) マイクロソフト製品のライセンス販売で困ってます 1 2022/06/30 19:52
- サーバー FTPサーバについて詳しい方(アクセス権のないディレクトリを非表示にする方法) 4 2022/08/22 22:33
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- 経営情報システム 起業とサービス価格設定 3 2023/04/12 11:29
- その他(データベース) accessについて 2 2022/05/31 16:58
- その他(ソフトウェア) 現在と過去の顧客名簿、新規・解約・更新など作りたいのですが「やよいの顧客管理」なら簡単に扱えますか? 1 2022/05/18 10:44
- 弁護士・行政書士・司法書士・社会保険労務士 司法試験合格者の司法書士試験の受験について 3 2022/08/31 16:40
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- 経営情報システム 社員5人の会社ですが、PC買い替えやHP作り直し、顧客管理ソフト導入などに使える補助金はありますか 1 2022/05/12 23:32
- 営業・販売・サービス 機器取替工事 見積の 諸費用などの相場 2 2023/02/17 11:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLでスキーマ名(所有者名)の...
-
異なるスキーマからデータを抽...
-
oracle 10g ユーザやスキーマご...
-
datapumpの実行方法について
-
エクスポートしたファイルを別...
-
select insert 句
-
ストアドやviewなどのエクスポート
-
特定のスキーマのテーブルを一...
-
データを削除しても表領域の使...
-
DELETE文でFROM句を省略した場合
-
CLOB型へのINSERT
-
ACCESS 複数テーブル・複数フィ...
-
Access レコードを追加できませ...
-
ORA-00959: 表領域'****'は...
-
Viewにインデックスは張れ...
-
C#でaccdbファイルのテーブルの...
-
AccessのInsertクエリのあとつ...
-
列が255以上のCSVファイルをAcc...
-
PL/SQLの平行処理について
-
テーブルからのselectにおいて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
datapumpの実行方法について
-
異なるスキーマからデータを抽...
-
viewのバックアップ
-
SQLでスキーマ名(所有者名)の...
-
特定のスキーマのテーブルを一...
-
oracleのimpdpでORA-39166
-
select insert 句
-
スキーマの削除、スキーマオブ...
-
Oracle10gで他のスキマーのテー...
-
ストアドやviewなどのエクスポート
-
異なるスキーマからビュー作成
-
DBリンク&シノニム経由インデ...
-
シノニムってエイリアスのエイ...
-
ストアドで別スキーマのテーブ...
-
ORA-01861について
-
DBリンク経由の参照について
-
oracle 10g ユーザやスキーマご...
-
Oracleにおいて
-
オラクルのビューの存在について
-
EXPORT時にあるテーブルのみ範...
おすすめ情報