8.2 具体的な配置例

8.2 具体的な配置例

次に、例を使用して、物理ボリュームとデータベースファイルの配置の具体的な処理を紹介します。
まず、配置を考える上での優先順位を決めます。

8.2.1 データベースファイル全体

耐障害性を考慮した分割

REDOログファイルの同一グループ内のメンバーは別ボリュームに配置します。
制御ファイルを多重化したファイルは別ボリュームに配置します。

競合を考慮した分割

REDOログファイルとその他のファイル群は別ボリュームに配置し、アーカイブログファイルとREDOログファイルも、読み込みと書き込みが同時に行われるため、異なるボリュームに配置します。

8.2.2 表領域全体

競合を考慮した分割

更新頻度の高いオブジェクトはなるべく分散して配置します。
UNDO表領域や一時表領域は、オンライン(少量データ対象)用とバッチ(大規模データ対象)用にブロックサイズやエクステントサイズの異なる別の表領域を作成し、最適化を行います。

UNDO表領域は、「ブロックサイズ」の異なる、バッチ更新用の大きいサイズのものとオンライントランザクション用の小さいサイズのものの2種類を作成します。
UNDO表領域のエクステントサイズは、システムによる自動調整機能を使用するため、指定できません。
使用するUNDO表領域は、初期化パラメータによって、一時点に1つのみ有効にすることができます。
オンライン処理が主な日中は、小さいブロックサイズのUNDO表領域を有効にしてバッチ処理などが実行され、大きなUNDO表領域が必要な夜間には、大きなブロックサイズのUNDO表領域を有効にします。

TEMP表領域も大規模バッチ用のブロックサイズ、エクステントサイズともに大きいサイズのものと、オンライントランザクション用の小さいサイズのものの2種類を作成します。
大きいTEMP表領域は、大規模なソート処理などを実行するユーザに明示的に割り当て、小さいTEMP表領域は、一般的なユーザに割り当てます。

UNDO表領域の小さいサイズのものはTEMP表領域の大きいサイズのものと同じボリュームに配置し、UNDO表領域の大きいサイズのものとTEMP表領域の小さいものを同じボリュームに配置します。
UNDO表領域は、アクティブになっていなければ領域を取得しないためです。

管理の容易性を考慮した分割

一時的なワークファイルとして使用されるボリュームは、恒常的なオブジェクトを格納するボリュームとは分けます。
ワーク的なボリュームとは一時表領域やUNDO表領域を指し、恒常的なオブジェクトとはそれ以外のシステム管理表やユーザ表、索引などを指します。

サブシステム単位で表領域を分け、更新頻度の高いオブジェクトと低いオブジェクトが別のボリュームに配置されるようにします。
更新頻度の高いオブジェクトであるイベント系のパーティション表は、ボリュームを分散して並列に書き込み、読き込みができるようにしています。

8.2.3 表と表領域、物理ボリュームの分け方

トランザクションが増加し続けていく表(受注、売上、発注、仕入れなど)は、パーティション化します。
月次報告、四半期報告、半期決算などの業務要件的な理由から、12パーティションが理想的ですが、本例では2か月ごとに1パーティションとしています。

サマリー系のマテリアライズドビューを作成し、これもパーティション化します。
本例では、日別商品別顧客別売上サマリ、日別商品別営業部貝別売上サマリ、日別商品別部門別売上サマリ、日別商品分類別売上サマリを作成していますが、分析の視点や集計の単位はそれぞれのユーザニーズに合わせて設計する必要があります。

サブシステムの単位と表領域を対応させるように考慮します。
サブシステムの中で同時にアクセスする可能性の高い表に関しては、ボリュームの異なる表領域に配置します。
本例では索引が対象に入っていないため、わかりにくいかもしれません。

マスタ系の表とイベント系の表では、更新頻度が異なるため、異なる表領域に配置してバックアップのタイミングをずらしやすくします。
本例では、マスタ系の表が格納されている表領域と、イベント系の表が格納されている表領域は分けるようにしています。

更新系(イベント系)の表はボリュームを分散させて書き込み時の処理が並行して行われるようにします。
本例では、同じ表領域で別ボリュームを複数対応させています。
RAID機能を使って並行処理を行うことも可能です。

< 前へ | 8.2 具体的な配置例 | 次へ >

解説トレーナー

Oracle / 上流工程 担当 中村 才千代

データベース設計、システム構築の上流~下流工程全般のインストラクターです。SE時代の経験を生かし「業務を知るエンジニアこそDB設計に関わるべき」「DB設計に携わるエンジニアは業務を知る人に知恵を貸してもらう」ことを伝えたいと思っています。

■認定・受賞

2000年 Oracle University「Best Instructor of the Year」受賞
2002年 Oracle University「Best Instructor of the Year」受賞

Page Top