表領域分割・配置の際の観点
データベースは複数の表領域で構成されます。表領域の分割を検討する際には、主に3つの観点があります。
次項以降でこれらの各観点について解説します。
管理性の観点
データベース管理を容易にするために、以下列挙する点に留意してください。
- 断片化などパフォーマンスの問題が発生しにくくなる
- ディスクの追加など表領域の再編成に伴う工数が削減できる
- 管理者にとってわかりやすい
等のメリットが得られます。
(1)システム表領域、UNDO表領域、一時表領域は独立して作成すること
システム表領域、UNDO表領域、一時表領域は独立した表領域として作成して下さい。また、これらの表領域にはユーザーのテーブルやインデックスは作成しないようにして下さい。
(2)OMF(Oracle Managed Files)を利用する
(3)読取専用のセグメントを別表領域に分ける
読取専用のテーブルやインデックスは読取専用の表領域に格納します。読取専用表領域に格納することで、読取専用であることが明示的にわかるようになります。また、一度バックアップを取れば、更新がないので定期的にバックアップを取る必要がなくなります。テーブルやインデックスをパーティション化してパーティション毎に表領域を分けると、更新されることのないパーティションのみ読取専用とすることもできます。
(4)格納オブジェクトで分ける
例えばテーブルとインデックスは別々の表領域に格納する、あるいは同じテーブルでも通常のテーブルとLOBテーブルは別々の表領域に格納する、といったように、オブジェクトごとに表領域を分けます。DB規模が大きいほど、後々の管理がやりやすくなります。
(5)ユーザー(スキーマ)で分ける
例えばSCOTTユーザー所有のオブジェクトとSMITHユーザー所有のオブジェクトは別々の表領域に格納する、といったように、オブジェクト所有ユーザーごとに表領域を分けます。DB規模が大きいほど、後々の管理がやりやすくなります。
(6)業務用途で分ける
例えば経理システムで使用するオブジェクトと人事システムで使用するオブジェクト、両方で使用するオブジェクトは別々の表領域に格納する、といったように、業務ごとに表領域を分けます。DB規模が大きいほど、後々の管理がやりやすくなります。
耐障害性の観点
障害が発生しにくいように、あるいは障害が発生しても影響範囲が小さくなるように、以下列挙する点に留意してください。
(1)ディスクの分割
大容量のディスクを少量用意するよりも、小容量のディスクを大量に用意し、極力データを分散させることで、障害の影響を小さくするという意味で耐障害性を確保することができます。もっとも、ディスクの大容量化によってこの対策をとることは難しいかもしれません・・・
(2)同一ディスク内でもある程度ファイルを分けて配置する
同一ディスク上でパーティション、ディレクトリ、ファイルといった単位で分けることも、ディスクを分割することに比べれば効果は小さいですが、障害範囲の極小化などといった効果はあります。
(3)データの重要度に応じて耐障害性の高いディスク装置を利用する
あまりあるケースではないと思いますが、DB内のデータの重要度に極端な差があり、その割にディスクに割ける予算が限られている場合は、重要なデータはRAID構成のディスク装置に表領域を配置し、そう重要でないデータはRAIDでないディスク装置に表領域を配置するといった手も考えられます。
パフォーマンスの観点
大容量のディスクを少量用意するよりも、小容量のディスクを大量に用意し、極力データを分散させることで、耐障害性のみならずパフォーマンスも向上させることができます。以下のような組み合わせは極力異なるディスクに配置してください。
(1)テーブルと、そのテーブルに対するインデックス
インデックスを介したスキャンが実行される場合、同じディスクにテーブルとインデックスがあると、テーブルとインデックスの間のHDDのアームの移動が頻繁に発生します。検索対象レコード数が多いほどパフォーマンスの影響が出てきます。
(2)結合対象のテーブル同士
結合方法により差がありますが、結合対象のテーブル同士の間のアームの移動が頻繁に発生します。検索対象レコード数が多いほどパフォーマンスの影響が出てきます。
(3)パラレル処理の対象になるテーブルやインデックス
パラレル処理は複数のプロセスを立ち上げて、各プロセスが同じテーブルやインデックスにアクセスするため、同じディスクに配置しているとI/Oの競合が発生し、却ってパフォーマンスが落ちることがあります。セグメントに対して複数のデータファイルを作成するか、パーティション化してデータファイルを分けるなどして、別ディスクに配置するようにしてください。
(4)システム表領域
システム表領域はその他の表領域、REDOログファイルとは異なるディスクに配置するようにして下さい。特にオブジェクト数の多いシステム、監査証跡をテーブルに記録するシステム、マルチマスタ・レプリケーションやアドバンスド・キューイングを利用するようなシステムではシステム表領域へのI/Oが多発します。システム表領域へのI/Oが多発するような場合、システム表領域自体を複数のデータファイルで作成し、データファイルを分散させると有効です。
(5)UNDO表領域
UNDO表領域はその他の表領域、REDOログファイルとは異なるディスクに配置するようにして下さい。特に更新処理の多いシステムではUNDO表領域へのI/Oが多発します。UNDO表領域へのI/Oが多発するような場合、UNDO表領域自体を複数のデータファイルで作成し、データファイルを分散させると有効です。
(6)一時表領域
一時表領域はその他の表領域、REDOログファイルとは異なるディスクに配置するようにして下さい。特に大量ソート処理の多いシステムでは一時表領域へのI/Oが多発します。一時表領域へのI/Oが多発するような場合、一時表領域自体を複数のデータファイルで作成し、データファイルを分散させると有効です。一時表領域の場合は一時表領域そのものを複数作成し、ユーザーによって利用する一時表領域を分けるという方法もあります。
|