バージョン 8.1.3
 —  DBA タスク  —

データベースのスペース管理

このドキュメントではデータベースのスペース管理に関する情報を DBA に提供します。 取り上げる項目は次のとおりです。

この情報は次の項目で構成されています。


Adabas 物理エクステント

Adabas 物理エクステント(データベースのコンテナ)は、データベースの定義時にデータベースコンポーネント(アソシエータ、データストレージ、ワーク)に割り当てた物理ブロックの集合です(ADADEF ユーティリティの ASSOSIZE、DATASIZE、WORKSIZE の各パラメータを参照)。

物理エクステントに対するスペースは、使用するオペレーティングシステムの標準の割り当て手続きを使用して割り当てます。

Adabas 物理エクステントは、1 次エクステントだけから成る単一のオペレーティングシステムエクステント内に割り当ててもよいし、1 次エクステントと 1 つまたは複数の 2 次エクステントとを合わせて割り当ててもかまいません。 2 次エクステントは 1 次エクステントと連続している必要はなく、また、互いに連続している必要もありません。

Adabas 物理エクステントは、1 つの物理ボリューム内に含まれてもよいし複数ボリュームにまたがってもかまいません。 アソシエータとデータストレージはそれぞれ約 99 個までの Adabas 物理エクステントを含むことができます。 ただし、すべてのアソシエータ、データストレージ、およびデータストレージスペーステーブル(DSST)のエクステントのエクステント記述がジェネラルコントロールブロック(GCB)に収まる必要があるため、実際の最大数は、これよりも少なくなる可能性があります。 例えば、標準の 3390 デバイスタイプでは、アソシエータ、データストレージ、および DSST の各エクステントの個数は 75 を超えることができます(他のタイプのエクステント数が少ない場合は、1 つのタイプのエクステントをより多く持てます)。

Top of page

Adabas 相対ブロック番号(RABN)

Adabas 情報は割り当てられたスペースにブロック単位で格納されます。 ブロックの大きさは次の 2 つの要因に応じて決定します。

例えば、Adabas で使用されるデフォルトのデバイスタイプは IBM 3380 ディスクです。 別のデバイスタイプを指定しない限り、多くのユーティリティやオペレーティングパラメータでこのデバイスタイプが想定されます。

スペース割り当てを行うときは、アソシエータ(ASSO)、データストレージ(DATA)、ワークエリア(WORK)、ロギングエリア(PLOG、CLOG、RLOG)、あるいはソートエリア、一時エリアとして割り当てる必要があります。 ASSO に割り当てた 3380 ブロックには 2004 バイトが含まれています。一方、DATA に割り当てた 3380 ブロックには 4820 バイトが含まれています。 各デバイスタイプと Adabas コンポーネントのブロックサイズは事前に定義されています。 デバイスタイプおよびコンポーネント別にブロックサイズのリストを確認するには、該当するシステムプラットフォーム(z/OS、VSE、z/VM、または BS2000)の『Adabas インストールマニュアル』に記載されている「デバイスとファイルについて」を参照してください。

Adabas のブロックサイズはハードウェアによって固定されていませんが、物理ブロック(FBA)デバイスの説明に合わせて物理ブロックと呼んでいます。 Software AG では、リリース間でデバイスタイプごとにブロック定義の一貫性を保とうとしています。 しかし、Adabas の機能拡張に合わせて、コンポーネントタイプのブロックサイズが変わる場合もあります。 したがって、新しい Adabas リリースを実行する前に、特定 Adabas コンポーネント(PLOG、ASSO など)の再フォーマッティングが必要な場合があります。

Adabas はデータベースコンポーネント(アソシエータ、データストレージ、ワーク)内の各物理ブロックをその Adabas 相対ブロック番号(RABN)すなわちコンポーネントの先頭からの相対位置で示します。 RABN は、各データベースコンポーネント内で 1 から順に昇順で割り当てられます。 複数の物理エクステントが使用されるとき、RABN の割り当ては物理エクステント全体を通して行われます。

アソシエータ、データストレージ、およびワークの各コンポーネントの最初の物理エクステントの最初のトラックは使用されません。 2 番目以降の物理エクステント、また TEMP、SORT、CLOG、および PLOG のすべてのエクステントの最初のトラックは使用されます。

ASSO と DATA に割り当て可能な RABN 数は、データベースの定義時に指定された RABNSIZE パラメータに応じて異なります。 RABNSIZE はデータベース中の Adabas 相対ブロック番号の長さを意味します(ブロック自体の長さではありません)。

外部ストレージの特定の物理ユニット(トラック/シリンダ/ボリューム)に格納できる Adabas ブロックの数は、データベースコンポーネントとデバイスタイプによって異なります。

例えば、「サポートされるデバイスタイプ」に示す情報を使用して、特定のボリュームに格納できるブロック数をこの後の例に示すように計算できます。 また、各 VOLSER に格納する RABN 範囲は Adabas Online System レポート機能を使用して簡単に決定できます。

例 1:アソシエータデータベースコンポーネント、モデル 3380(ボリュームで 880 個のシリンダを使用可能と仮定)


number of ASSO blocks = blocks/track * tracks/cylinder * number of cylinders

= 19 * 15 * 880 = 250,800 Associator blocks

アソシエータの最初の物理エクステントの最初のトラック用に 19 個のブロックを差し引きます。したがって、最初のアソシエータボリュームには最大 250,781 個のブロックを格納できます。

例 2:データストレージデータベースコンポーネント、モデル 3370(ボリュームで 748 個のシリンダが使用可能と仮定)


number of DATA blocks = blocks/track * tracks/cylinder * number of cylinders

= 10 * 12 * 748 = 89,760 Data Storage blocks

データストレージの最初の物理エクステントの最初のトラック用に 10 個のブロックを差し引きます。したがって、最初のデータストレージボリュームには最大 89,750 個のブロックを格納できます。

Top of page

Adabas 論理エクステント

Adabas の論理ファイルエクステントは、Adabas ニュークリアスまたは Adabas ユーティリティが割り当てる連続した RABN 群です。 データベースにロードする各ファイルについて、次のタイプの Adabas 論理エクステントの各々の最小 1 つがファイルに割り当てられます。

論理エクステント 割り当てる物理エクステント
データストレージ データストレージ
アドレスコンバータ アソシエータ
ノーマルインデックス アソシエータ
アッパーインデックス アソシエータ

ファイルメンテナンスの結果、追加スペースが必要になった場合に、追加論理エクステントが Adabas ニュークリアスまたは Adabas ユーティリティによって割り当てられます。

任意のファイルに最大 2 つのアドレスコンバータを割り当てることができます。1 つはファイル用、もう 1 つはファイル内のスパンドレコード用です。 スパンドレコードを使用していない場合、割り当てられるアドレスコンバータは 1 つだけです。

定義できる論理ファイルエクステントの合計数には、ファイルのすべてのアドレスコンバータ、データストレージ、ノーマルインデックス、アッパーインデックスのエクステント情報がファイルコントロールブロック(FCB)内に収まる必要があるという制約があります (エクステントの情報は、FCB の可変のセクション内に格納されます)。例えば、標準の 3390 デバイスタイプの場合、ファイルはタイプごとに 40 を超えるエクステントを持つことができます(他のタイプのエクステント数が少ない場合、1 つのタイプのエクステント数はより多くすることができます)。

Adabas ニュークリアスの起動時に FCB が確認されます。 FCB スペースが、さらに 4 つのエクステントに不十分である場合は、Adabas ニュークリアスによって、ファイルのリオーダを指示するメッセージが出力されます。 また、各タイプの最後のファイルエクステントの空き ISN またはブロック数が 5 つ以下の場合、ニュークリアスによってファイルがユーティリティだけで使用されるようにロックされます。 通常のユーザーがファイルにアクセスしようとすると、レスポンスコード 17 または 48 が返されます。

ADAREP ユーティリティレポートの[Contents of the Database]セクションでは、FCB スペースが、さらに 10 個のエクステントには不十分であるファイルにフラグが付けられます。 レポートの[File Information]セクションには、各ファイルに追加で確実に構築できるファイルエクステントの数が出力されます。

Top of page

Adabas スペース割り当ておよび割り当て解除

このセクションでは、全 Adabas スペースの割り当ておよび割り当て解除の手順の概略を示します。 これらの手順をよく理解すれば、正確で効率的なデータベーススペース管理が確実なものとなるはずです。

フリースペーステーブル

割り当てに利用できる全スペースはフリースペーステーブル(FST)に確保されます。 このテーブルには、現在いかなるファイルにも割り当て可能な全 RABN エクステントが含まれています。

Adabas ニュークリアスによるスペース割り当て

レコードの追加、更新コマンドの処理中に Adabas ニュークリアスは次のファイルコンポーネントに追加エクステントを割り当てなければならないことがあります。

アドレスコンバータ(AC)

アドレスコンバータのサイズは最初は ADALOD ユーティリティの MAXISN パラメータで定義します。 アドレスコンバータはブロック単位で格納されるため、実際予測される最大の ISN はわずかに大きくなります。

モデル 3380 でブロック当たり 668 個のエントリがある場合(2004/3)に RABNSIZE = 3、MAXISN = 5000 と指定すると、ブロック数は 8 個になります。 したがって、予測される最大の ISN(さらに拡張する前)は 5343(668 * 8 - 1)です。

モデル 3380 でブロック当たり 501 個のエントリがある場合(2004/4)に RABNSIZE = 4、MAXISN = 5000 と指定すると、ブロック数は 10 個になります。 したがって、予測される最大の ISN は 5009(501 * 10 - 1)です。

N1 コマンドの実行中に Adabas ニュークリアスがファイルに追加エクステントを必要とした場合、割り当てルーチンは現サイズの 25 %の新規エクステントを割り当てようとします。

ノーマルインデックス(NI)、アッパーインデックス(UI) データストレージ(DS)

新しいエクステントを割り当てる場合は、次の公式を使用します。

graphics/ni_ui_ds.png

ここでは次の内容を表しています。

B 現在割り当てられているブロック数
E 予測される最大 ISN
U 現在割り当てられている最大 ISN

FST で見つかったエクステントが前のエクステントの終わりと連続する場合、そのエクステントは最大 Z ブロックに割り当てられます。

FST でそのようなエクステントが見つからなかった場合、次のとおりになります。

MAXNI、MAXUI、または MAXDS のいずれかのパラメータが現在のファイルに指定されている場合、ニュークリアスによって、それぞれ NI、UI、または DS に指定された最大ブロック数以下が割り当てられます。

ADADBS ユーティリティのスペース割り当て

アソシエータ、データストレージの ADD/INCREASE

アソシエータまたはデータストレージの物理エクステントがすべて使われた場合には、ADD 機能または INCREASE 機能(Adabas Online System または ADADBS ユーティリティ)を使用して、追加の物理スペースを定義できます。

ADD 機能では、アソシエータまたはデータストレージに追加データセットを割り当てる必要があります。 新規データセットは現在使用中のデバイスタイプと同じデバイスタイプまたは異なるデバイスタイプに配置できます。 アソシエータもデータストレージもそれぞれ 99 個以下のデータセットで構成されます。 ただし、定義可能な物理エクステントの最大数は、最初のアソシエータデータセット(DDASSOR1)のブロックサイズに依存するため、実際の最大数はこれより小さくなります。 例えば、標準の 3390 デバイスタイプでは、アソシエータ、データストレージ、および DSST の各エクステントの個数は 75 を超えることができます(他のタイプのエクステント数が少ない場合は、1 つのタイプのエクステントをより多く持てます)。

INCREASE 機能は既存データセットを物理的に拡張します。 新しいスペースは、最初に ADAFRM ユーティリティを使用してフォーマットする必要があります。 INCREASE 機能を使用する回数に制限はありません。

ADD 機能の後、新しいデータセットを使用するにはその前に ADAFRM ユーティリティを使用してフォーマットする必要があります。また、適切な変更をすべての Adabas ジョブコントロールに対して行う必要があります。詳細については、『Adabas オペレーションマニュアル』を参照してください。

データストレージを 4 回増加したら、ADAORD ユーティリティの REORASSO 機能を実行して、エクステントを 1 つにするためにデータストレージスペーステーブル(DSST)をリオーダし、データストレージで 4 回以上増加できるようにする必要があります。

フォーマットまたはリオーダを可能にするため、ニュークリアスセッションは、ADADBS の ADD 操作または INCREASE 操作の後に自動的に停止します。

ALLOCATE 機能

ALLOCATE 機能(Adabas Online System または ADADBS ユーティリティ)を使用して次のファイルコンポーネントに特定サイズのエクステントを割り当てることができます。

開始 RABN を指定することで、エクステントを割り当てる場所を指定することも可能です。

この機能を使用すれば、Adabas が自動的に割り当てを行うのでなく、DBA がファイルのサイズを予測し、特定サイズのエクステントを割り当てることができます。 これにより、Adabas が小さすぎたり大きすぎたりするエクステントを割り当てるのを防ぐことができます(ADALOD ユーティリティ参照)。 アクセスするファイルの実際の MAXNI/MAXUI および MAXDS の値はチェックされません。

DEALLOCATE 機能

DEALLOCATE 機能(Adabas Online System または ADADBS ユーティリティ)を使用して、次のファイルコンポーネントに割り当てられているエクステントの割り当てを解除できます。

開始 RABN を指定することで、スペース割り当て解除をどこから始めるかを指定することができます。 割り当てを解除されたスペースはフリースペーステーブル(FST)に戻されます。

DELETE 機能

DELETE 機能(Adabas Online System または ADADBS ユーティリティ)は、既存ファイルをデータベースから削除します。 ファイルに割り当てられていたスペースは、フリースペーステーブルに戻され再利用可能となります。 DELETE では、完全な拡張ファイルだけを削除できます。

RECOVER 機能

RECOVER 機能(Adabas Online System または ADADBS ユーティリティ)を使用して、異常終了した ADAINV ユーティリティまたは ADALOD ユーティリティの実行中に割り当てられたスペースを回復できます。 回復したスペースは、フリースペーステーブルに戻され、再利用可能となります。

REFRESH 機能

REFRESH 機能(Adabas Online System または ADADBS ユーティリティ)は、ファイルステータスをレコード 0 件状態にし、各ファイルコンポーネントへの割り当てを 1 エクステントに設定します。 第 1 エクステント以外の追加エクステントはフリースペーステーブルに戻されます。

RELEASE、UNCOUPLE 機能

RELEASE および UNCOUPLE 機能(Adabas Online System または ADADBS ユーティリティ)は、インバーテッドリストまたは物理カップリングリストを削除します。 リストに使用されていたスペースは、ADAORD ユーティリティでのみ回復できます。 拡張ファイルのディスクリプタを解放する場合、各成分ファイルを個別に解放する必要があります。 拡張ファイルのディスクリプタを解放しているとき、ADADBS ではメッセージを表示します。

ADAINV ユーティリティのスペース割り当て

COUPLE/INVERT 機能

COUPLE 機能と INVERT 機能(Adabas Online System または ADAINV ユーティリティ)を使用すると、NISIZE ファイルコンポーネントに追加ブロックが割り当てられる場合があります(DSSIZE または MAXISN はなし)。 これは、入力データの処理中に使用可能なスペースが一杯になった場合に発生します。

この場合、ニュークリアスによる削除中に解放されたインデックスブロックがあった場合、これらのブロックが再利用されます。 フリースペーステーブルにサイズが M1 と M2 の範囲内のブロックがあれば利用されます。

M1 および M2 は次のように計算します。

M2 = M1 + M1/8

M1 = MAX (A2, NIB/4 + KZ)

ここでは次の内容を表しています。

KZ ZAP 可能な値(デフォルト = 10)
NIB 使用中の NI ブロック数

および

A2 = MIN (A1, NIB * 2)

A1 = IUN * NIB/IUS

ここでは次の内容を表しています。

IUN 未使用 ISN の数
IUS 使用済 ISN の数

拡張ファイルのディスクリプタをインバートする場合、各成分ファイルを個別にインバートする必要があります。 拡張ファイルのディスクリプタをインバートしているとき、ADAINV はメッセージを表示します。

ADALOD ユーティリティのスペース割り当て

LOAD 機能

ADALOD ユーティリティの LOAD 機能はファイルをデータベースにロードするために使用します。

DSSIZE パラメータ

ADALOD の実行の開始時に DSSIZE パラメータに指定されたブロック数またはシリンダ数分が割り当てられ、先頭の DS エクステントに割り当てられます。

DSRABN パラメータまたは DSDEV パラメータは特定の RABN またはデバイスに割り当てを行うために使用します。

入力データの処理中に最初に割り当てられたエクステントが一杯になった場合には、フリースペーステーブル内でサイズが M1 と M2 の範囲のフリーブロックの検索が行われます。

M1 および M2 は次のように計算します。

M2 = M1 + M1/8

M1 = MAX (A2, DSB/4 + KZ)

ここでは次の内容を表しています。

KZ ZAP 可能な値(デフォルト = 10)
DSB 使用中の DS ブロック数

および

A2 = MIN (A1, DSB * 2)

A1 = IUN * DSB/IUS

ここでは次の内容を表しています。

IUN 未使用 ISN の数
IUS 使用済 ISN の数

フリースペーステーブル内に十分なスペースが見つかり、そのスペースがすでに割り当てられているエクステントのすぐ後ろに続いている場合には、そのスペースがエクステントの終わりに追加されます。 この場合には、新しいエクステントは割り当てられません。

新しいエクステントが必要な場合には、フリースペーステーブルがチェックされ M1 から M2 のサイズを満たすだけの数のブロックが新規エクステントとして取られます。 99 エクステントまで可能です。 ただし、定義可能な物理エクステントの最大数は、最初のアソシエータデータセット(DDASSOR1)のブロックサイズに依存するため、実際の最大数はこれより小さくなります。 スペースがなければ ADALOD はエラーメッセージを出して終了します。

定義可能になった論理ファイルエクステントの最大数は、アソシエータの第 1 データセット(DDASSOR1)のブロックサイズから決定されます。 エクステントの情報は、FCB の可変セクション内に格納されます。 使用された FCB サイズがアソシエータデータセットのブロックサイズに到達するまで、新しいエクステントを追加できるようになりました。

MAXISN パラメータ

MAXISN 値はブロック数に変換され、ブロック境界の値に切り上げられます。 この範囲のブロックは ADALOD 実行の開始時に割り当てられ、ファイルの先頭のアドレスコンバータエクステントに割り当てられます。

ACRABN パラメータを利用すれば、特定の位置から割り当てを開始できます。

入力データの処理中に最初に割り当てられたエクステントが一杯になった場合には、ADALOD は現在ある全 AC エクステントサイズの合計の 25 %の大きさの AC エクステントをもうひとつ割り当てようとします。

NISIZE/UISIZE パラメータ

ADALOD 実行の開始時に、NISIZE および UISIZE パラメータに指定されたブロック数またはシリンダ数が割り当てられ、先頭の NI/UI エクステントに割り当てられます。

NIRABN/UIRABN パラメータを使用して、特定の RABN から割り当てを始めることができます。

これらのパラメータが省略されると、ADALOD は最初に NI および UI スペースを割り当てません。 入力された全ディスクリプタ値が中間データセットに書かれた後、次のように NISIZE および UISIZE の見積りが行われます。

UPDATE 機能

ADALOD ユーティリティの UPDATE 機能は、既存のファイルのレコードの一括追加/削除、再編成、さらに必要に応じてアソシエータまたはデータストレージのスペースを拡張します。

MAXISN パラメータで、より大きい最大 ISN 値を新しく指定した場合、UPDATE で実行した AC、NI、UI の再構成により、未使用のスペースか増えた場合でも、UPDATE 機能は追加の AC スペースを割り当てます。 現在のデータストレージスペースに新規レコードを保持できなければ、ADALOD UPDATE はデータストレージスペースを追加します。

MAXISN パラメータ

UPDATE 処理に現在のファイルの値よりも大きな MAXISN 値が指定されると、旧 MAXISN と新 MAXISN の設定の差が計算されます。 その後この量を満たす数の AC ブロックが、フリースペーステーブルから追加エクステントとして割り当てられます。 ACRABN パラメータを利用すれば、特定の位置から割り当てを開始できます。

入力データの処理中に、現在の AC エクステントやデータストレージエクステントが一杯になった場合には、ADALOD は現在ある全 AC エクステントサイズやデータストレージエクステントの合計の 25 %の大きさの AC エクステントやデータストレージエクステントをもうひとつ割り当てようとします。

ADAORD ユーティリティによるスペース割り当て

ADAORD は、使用できないスペースを再使用できるように、Adabas アソシエータの各コンポーネント(AC、NI/UI、DSST)およびデータストレージをリオーダします。 ADAORD 機能は Adabas 拡張ファイルの指定成分ファイルにのみ有効であって、論理的な整合性を保つために拡張ファイルを変更することはありません。したがって、必要がない限り、ADAORD は拡張ファイルの各成分ファイルに実行してはなりません。

機能 アクセスするテーブルタイプ
REORFASSO AC、NI、UI
REORASSO AC、NI、UI、DSST
REORFDATA、REORDATA DS
REORFILE、REORDB AC、NI、UI、DS

アクセスするファイルとアクセスするテーブルタイプ(機能による)それぞれに対して次の処置が取られます。

エクステントの 1 つが一杯になると、ADALOD(UPDATE)ユーティリティで示したのと同じ処置が取られます(「UPDATE 機能」参照)。

ADASAV によるスペース割り当て(RESTORE FILES 機能)

データベースにすでに存在するファイルをリストアする(OVERWRITE パラメータ必須指定)場合には、それらの全ファイルに使用されていたスペースはフリースペーステーブルに戻されます。 拡張ファイルの成分ファイルを指定する場合、関連する成分ファイルもすべて指定しなければなりません。

スペースがあれば、複数入力エクステントを新しい 1 つのエクステントに圧縮できます。 連続したフリースペースが十分になければ ADASAV はテーブルをいくつかの新しいエクステント(各テーブルに 99 個まで)に分割します。 そのようなスペースがない場合には ADASAV は ERROR-060 で終了します。

Top of page

データベースステータスレポートを使用したスペース使用状況の監視

データベーススペース使用に関する情報を得るには、ADAREP ユーティリティを実行するか Adabas Online System を使用してデータベースステータスレポートを出力する必要があります。

このレポートは、ファイル割り当てマップとブロック割り当てマップに加えて次のブロック数を示します。

このレポートで得られる情報の詳細については、『Adabas ユーティリティマニュアル』の「ADAREP」の章を参照してください。

DBA はこのレポートを頻繁にチェックし、スペース使用状況に関する問題点を確認する必要があります。

次のセクションでは、ステータスレポートを使用して発見できる問題点と各問題点の推奨される回避/解決方法を示します。

Top of page

スペース使用に関する問題点とその対応策

ここでは、データベーススペースの使用に関してよく発生する問題点と、その予防策や対応策について述べます。

物理エクステントが一杯になった場合

  1. アソシエータの物理エクステントがほぼ一杯または完全に一杯。

  2. データストレージ物理エクステントがほぼ一杯または完全に一杯。

最大物理エクステントに達した場合

  1. アソシエータの物理エクステントの最大数(約 99)に達しました。

  2. データストレージの物理エクステントの最大数(約 99)に達しました。

最大論理エクステントに達した場合

  1. ファイルのアドレスコンバータ、ノーマルインデックスまたはアッパーインデックスの最大論理エクステントに達しました。

  2. ファイルのデータストレージまたはデータストレージスペーステーブルの最大論理エクステント数に達しました。

Top of page