記憶域アーキテクチャーの説明では、 以下のことを考慮します。
データベースを作成する際、 省略時情報を含むデータベースについての情報がディレクトリーに入れられます。 このディレクトリー構造は、 CREATE DATABASE コマンドで提供した情報に基づいた位置に作成されます。 データベースを作成する際にパスまたはドライブの位置を指定しない場合には、 省略時位置が使用されます。
データベースを作成する位置を明示的に指定するようにお勧めします。
CREATE DATABASE コマンドで指定するディレクトリーでは、 インスタンスの名前を使用したサブディレクトリーが作成されます。 このサブディレクトリーにより、 同じディレクトリーの異なるインスタンスで作成されたデータベースが同じパスを使用しないことが保証されます。 インスタンス名のサブディレクトリーの下に、 "NODE0000" を使用したサブディレクトリーが作成されます。 このサブディレクトリーは、 複数の論理区分データベース環境で区画を区別するのに使用されます。 ノード・ディレクトリーの後に、"SQL00001" を使用するサブディレクトリーが作成されます。 サブディレクトリーの名前は、データベース・トークンを使用して付けられ、 作成中のデータベースを表します。 また、CREATE DATABASE コマンドで指定したディレクトリーで、 このインスタンス内で作成されたデータベースと区別するのにも使用できます。
<your_directory>/<your_instance>/NODE0000/SQL00001/
データベース・ディレクトリーには、 CREATE DATABASE コマンドの一部として作成されたファイルがいくつか組み込まれます。 バッファー・プール情報は、ファイル SQLBP.1 および SQLBP.2 に入れられます。 表スペース情報は、 ファイル SQLSPCS.1 および SQLSPCS.2 に入れられます。 これらのファイルはそれぞれ 2 つずつあり、 ファイル情報のバックアップが可能となっています。
データベース構成情報は、SQLDBCON に入れられます。 履歴ファイル db2rhist.asc およびそのバックアップ db2rhist.bak は可読ファイルで、 バックアップ、復元、表のロード、表の再編成、 表スペースの変更、およびデータベースへの他の変更についての履歴情報が含まれています。
ログ制御ファイル SQLOGCTL.LFH には活動ログについての情報が入ります。 回復処理では、 このファイルの情報を使用して、回復のために戻るログ内の位置を判別します。 SQLOGDIR サブディレクトリーには、実際のログ・ファイルが入ります。
注: | このログ・サブディレクトリーがご使用のデータに使用されているディスクとは異なるディスクにマップされていることを確認してください。 こうすると、ディスクの問題が生じたときに、データとログの両方ではなく、 データまたはログのいずれかに範囲を狭めることができます。 また、ログ・ファイルおよびデータベース・コンテナーは、 同じディスク・ヘッドの移動で競合することはないため、 パフォーマンスにも大きな利点となります。 ログ・サブディレクトリーの位置は、 newlogpath データベース構成パラメーターを使用すると変更できます。 |
SQLT* サブディレクトリーが作成され、 作動データベースに必要な省略時のシステム管理スペース (SMS) 表スペースが含まれます。 省略時の表スペースは 3 つ作成されます。
表スペースを考慮する際には、"コンテナー"についても考慮しなければなりません。 SMS 表スペースの場合、 コンテナーはオペレーティング・システム・ディレクトリーです。
各サブディレクトリーまたはコンテナーには、 "SQLTAG.NAM" というファイルが作成されています。 このファイルは、 サブディレクトリーに使用中のマークを付け、 後続の表スペース作成で、これらのサブディレクトリーが使用されないようにします。 さらに、コンテナー・サブディレクトリーの下に他のファイルが作成されます。 これらのファイルには、保管されているデータのタイプを識別するために異なる名前拡張子が付いています。 拡張子は、以下のとおりです。
サポートされる表スペースには 2 つのタイプがあります。 システム管理スペース (SMS) とデータベース管理スペース (DMS) です。 それぞれには、異なる環境に適した特性があります。 詳細については、表スペースの設計と選択 を参照してください。
システム管理スペース (SMS) 表スペースは、オペレーティング・システム・ファイルのデータを保管します。 表スペースのデータは、システム内のすべてのコンテナーにエクステント単位でストライピングされます。 エクステントは、 データベースに定義される連続ページのグループです。 表スペースの各表には、すべてのコンテナーで使用される独自のファイル名が付けられます。 ファイル拡張子は、 ファイルに保管されているデータのタイプを示します。 各表の先頭のエクステントは、コンテナー全体に "ラウンドロビン" 形式で配置されます。 このため、表スペースにあるすべてのコンテナーについて、 スペース要件が均等に配分されることになります。 これは、小さな表が数多くある場合に大変重要です。
追加のスペースが必要な場合には、 スペースの割り当てが実行されます。 省略時には、一度に 1 ページのスペースが割り当てられます。
データベース・マネージャーは、 データベース管理スペース (DMS) 表スペースを使用して記憶スペースを制御します。 DMS 表スペースが定義されるときには、表スペースに属するように装置またはファイルのリストが選択されます。 これらの装置またはファイルのスペースは、 DB2 データベース・マネージャーにより管理されます。 SMS 表スペースおよびコンテナーと同様、 DMS 表スペースおよびデータベース・マネージャーもエクステント単位のストライピングを使用して、 すべてのコンテナー間でデータが均等分配されるようにします。
DMS 表スペースと SMS 表スペースの相違点は、DMS 表スペースでは、 必要なときではなく、表スペースが作成される際にスペースが割り当てられることです。
また、この 2 種類の表スペースでは、データの配置が異なることがあります。 たとえば、 効果的な表走査について考慮しましょう。 エクステントのページが物理的に連続していることは重要です。 SMS の場合、オペレーティング・システムのファイル・システムが、 各論理ページを物理的に配置する位置を決定します。 ファイル・システムの他のアクティビティーのレベル、 および配置を判別するのに使用されるアルゴリズムによっては、 ページが連続して割り当てられることも、割り当てられないこともあります。 ところが、DMS の場合、データベース・マネージャーがディスクとのインターフェースを直接とるため、 確実にページが物理的に連続するようにできます。
この記憶域でのページの連続配置については、この一般論が適用できない例外が 1 つあります。 DMS 表スペースを処理する際には、2 つのコンテナー・オプションがあります。 ロー・デバイスとファイルです。 ファイル・コンテナーを処理する際、 データベース・マネージャーは、表スペースの作成時にコンテナー全体を割り当てます。 表スペース全体のこの初期割り当ての結果として、 物理的な割り当ては通常は連続していますが、 ファイル・システムがこの割り当てを実行しているとしても、連続するとは保証されません。 ロー・デバイス・コンテナーを処理する場合には、 データベース・マネージャーがデバイス全体を制御し、 常にエクステントのページを確実に連続配置できます。
SMS 表スペースとは異なり、DMS 表スペースを構成するコンテナーの場合は、 容量を互いに均等に近づける必要はありません。 ただし、コンテナーの容量は均等、あるいは均等に近いようにすることが勧められています。 また、コンテナーで満杯のものがあれば、 他のコンテナーで使用可能な空きスペースを DMS 表スペースで使用することができます。
DMS 表スペースを処理する場合には、 コンテナーを異なるディスクに関連付けることを考慮しなければなりません。 これにより、 表スペースの容量は大きくなり、 並行入出力操作を利用する機能も改善されます。
次の図に、DMS 表スペースの論理アドレス・マップを示します。
![]() |
CREATE TABLESPACE ステートメントは、データベースで新しい表スペースを作成し、 この表スペースにコンテナーを割り当て、カタログに表スペース定義と属性を記録します。 表スペースの作成にあたって定義されるもののなかに、エクステント・サイズがあります。 エクステントは、表スペース内のスペース割り当ての単位です。 これは、単なる連続ページのセットです。 エクステント・サイズは、連続ページの数です。 1 つの表 (または、索引などのその他のオブジェクト) では、 単一エクステント内のページしか使用できません。 表スペースで作成されるすべてのオブジェクト (表、索引、その他) には、 論理スペース・アドレス・マップでエクステントが割り当てられます。 1 つのエクステントは、一度に 1 つのオブジェクトにのみ属します。 エクステントの割り当ては、スペース・マップ・ページ (SMP) により管理されます。
論理表スペース・アドレス・マップの先頭のエクステントは、 表スペースのヘッダーで、これには内部制御情報が含まれます。 2 番目のエクステントは、表スペースのスペース・マップ・ページ (SMP) の最初のエクステントです。 SMP エクステントは、表スペースで等間隔に分散されます。 それぞれの SMP エクステントは、 現行の SMP エクステントから次の SMP エクステントへのエクステントのビットマップに過ぎません。 このビットマップは、 どの中間エクステントが使用中かまたは使用中でないかをトラックするのに使用されます。
SMP に続くエクステントは、表スペースのオブジェクト表です。 オブジェクト表は、表スペースにどのユーザー・オブジェクトが存在するか、 またどこに最初のエクステント・マップ・ページ (EMP) エクステントが配置されているかをトラックする内部表です。 各オブジェクトには、それぞれ EMP があり、これは、 論理表スペース・アドレス・マップに保管されているオブジェクトの各ページへのマップを提供します。
オブジェクト表は内部リレーショナル表で、 オブジェクト識別子を表の最初の EMP エクステントのロケーションにマップします。 この EMP エクステントは、直接的にも間接的にも、 オブジェクトにあるすべてのエクステントをマップします。 各 EMP には、エントリーの配列が含まれています。 各エントリーは、オブジェクト相対エクステント番号を、 オブジェクト・エクステントが配置されている表スペース相対ページ番号にマップします。 直接 EMP エントリーは、 オブジェクト相対アドレスをスペース相対アドレスに直接マップします。 最初の EMP エクステントにある最後の EMP ページには、 間接エントリーが含まれます。 間接 EMP エントリーは EMP ページにマップし、 続いて EMP ページがオブジェクト・ページにマップします。 最初の EXP エクステントにある最後の EMP ページの末尾の 16 個のエントリーには、 2 重の間接エントリーが含まれます。
論理表スペース・アドレスからのエクステントは、 表スペースに関連付けられているコンテナー全体にラウンドロビン方式でストライピングされます。
SMS と DMS 表スペースを比較すると、 一般的には SMS 表スペースが適しています。 SMS 表スペースは、わずかな管理コストで大変優れたパフォーマンスを提供しています。 最高のパフォーマンスを求める場合には、DMS 表スペースを選択するのが最善でしょう。 ファイル・コンテナーまたは SMS 表スペースを使用してデータを移動する際に、 ダブル・バッファリングが発生する可能性があるため、 デバイス・コンテナーが最善のパフォーマンスを提供するといえます。 (ダブル・バッファリングは、最初にデータベース・マネージャー・レベルでデータがバッファーに入れられ、 次いでファイル・システム・レベルでもバッファーに入れられた場合に発生します。)