DB2のデータベース・オブジェクトと物理設計:DB2マイスター養成講座(2)(1/2 ページ)
今回は、物理設計時の前提知識として各データベース・オブジェクトを紹介し、次に物理設計におけるポイントを解説する。(編集局)
第1回では、DB2のインストールからバイナリを最新の状態にするパッチセット「FixPak」を適用するところまで説明しました。今回は、次のステップであるデータベースの作成から話を進めます。
データベース・オブジェクト
具体的な解説の前に、データベース・オブジェクトについて簡単に復習しておきましょう。
DB2が使用するオブジェクトは画面1のような関係になっています。コントロール・センターのオブジェクト・ツリーですが、オブジェクトの関係を示すには最適です。
1つのシステムで、複数のインスタンスを持つことができます。また、1つのインスタンスは複数のデータベースを持つことができます。以下、それぞれのオブジェクトについて詳しく見ていきましょう。
■インスタンス
インスタンスはデータベースを管理するオブジェクトで、「データベース・マネージャ」と呼ばれることもあります。インスタンスはデータベースを制御し、割り当てられているシステムリソースを管理します。同一システム上に複数持つことができ、インスタンスごとにセキュリティが定義されます。
UNIXでは、ユーザーアカウントに対してインスタンスが定義されるので、1ユーザー=1インスタンスです。もちろん、インスタンスを所有するユーザー名がインスタンス名となります。インスタンスに対する認証はOSに任せることになります。
■データベース
データ(表)を管理する単位で、1インスタンス中に複数のデータベースを持つことが可能です。データベースの中には、バッファー・プール、表スペース、表、ビュー、索引のオブジェクトがあります。今回は物理設計がテーマですので、この中のバッファー・プールと表スペースを中心に解説します。
ほかにも、データの物理/論理構造の情報を持つシステム・カタログ表やパラメータなどの値が入っている構成ファイル、トランザクションのログが含まれます。
■データベース・パーティション・グループ
DB2もOracleと同様に複数台のサーバを使って並列クラスタ・データベースを構成できます。「データベース・パーティション」とは、複数台に分散されたデータベースの1区画を指し、複数区画をまとめたものを「データベース・パーティション・グループ」と呼びます。詳しい解説は第8回で行います。
■バッファー・プール
DB2自身が管理するI/Oキャッシュメモリを「バッファー・プール」と呼びます。物理メモリとデータベースを直接結ぶのが、このバッファー・プールです。バッファー・プールは、表スペースと関連付けて複数定義でき、これにより表および表アクセスの特徴に応じて効果的なI/Oキャッシュ処理を実現できます。
■表スペース
ストレージ(物理ディスク)と直接関係するのが、この表スペースです。文字通り、表や索引を格納する領域を指します。索引やラージ・オブジェクト(LOB)データなど、特定のオブジェクト専用の表スペースを用意することも可能です。また、表スペースは1つまたは複数の物理ストレージ・デバイスに分散させることもできます。表スペースの定義と属性は、データベース・システム・カタログに記録されています。
表スペースは、物理的には、
- システム管理スペース(SMS)
- データベース管理スペース(DMS)
の2つのタイプがあります。SMS表スペースはOSのファイルシステム上のディレクトリを指定して作成し、ディスクへの書き込み/読み込みはOSを介して行います。DMS表スペースは、サイズが固定されたファイルもしくはRAWデバイスを指定し、ディスクへの書き込み/読み込みはDB2が制御します。
また、用途によって3つのタイプの表スペースがあります。
- REGULAR表スペース
ユーザー・データを含む表を格納する表スペースです。デフォルトのユーザー表スペースUSERSPACE1や、システム・カタログ表スペースSYSCATSPACEは、このREGULAR表スペースに格納されます。
- LARGE表スペース
LONGフィールドやラージ・オブジェクト(LOB)データを格納できる表スペースです。通常はREGULAR表スペースに格納されますが、明示的にLARGE表スペースに格納可能です。
- TEMPORARY表スペース
TEMPORARY表スペースは、ソートや表の再編成、索引の作成、表の結合など、SQL操作中に必要となる内部的な一時データを保管するために使用します。デフォルトのSYSTEM TEMPORARY表スペースはTEMPSPACE1と呼ばれています。
索引は、REGULAR表スペースまたはLARGE表スペースに格納できます。
■コンテナ
コンテナは表スペースを構成する物理構成要素で、SMS表スペースであればディレクトリ、DMS表スペースであればファイルまたはデバイスを指します。1つの表スペースに対して、複数のコンテナを割り当てることが可能です。
表スペースに複数のコンテナがある場合、データはすべてのコンテナにラウンドロビン方式で格納されます。このため、コンテナ間でデータが均等になります。データベース・マネージャがコンテナに書き込むページ数を「エクステント・サイズ」と呼びます。
■そのほかのオブジェクト(表、索引など)
前出のコントロール・センターの図を見ると、上記以外にも論理オブジェクトがあることが分かります。表、索引、視点、別名、トリガー、スキーマ、ユーザー定義関数、ストアード・プロシージャなどです。
■ログ
データベース・オブジェクトとは呼べないかもしれませんが、ログも物理構成する際に重要な要素です。特にOLTP系のトランザクションの頻度が高いシステムでは、ログを配置する場所などにも配慮する必要があります。
DB2では、トランザクションがコミットされていない「アクティブ・ログ」と、トランザクションがコミットされディスクに書き込み済みの「アーカイブ・ログ」という2種類のログがあります。
Copyright © ITmedia, Inc. All Rights Reserved.