ADADEV(ディスクスペース管理)

このドキュメントでは ADADEV ユーティリティについて説明します。

次のトピックについて説明します。

注意:
このユーティリティは UNIX プラットフォームでのみ使用できます。


機能概要

ADADEV ユーティリティは、Adabas によって使用されるディスクスペースを、RAW ディスク I/O インターフェイスを介して管理するために、いくつかの機能を提供します。

ADADEV は指定されたディスクセクションデバイスに対する READ/WRITE アクセスを必要とします。システムの RAW ディスクセクション使用については、『Adabas インストールガイド』の「Adabas のインストール」を参照してください。

Adabas が使用する各ディスクセクションは、一度 ADADEV で初期化する必要があります。Adabas コンテナファイルまたはシーケンシャルファイル用にスペースをあらかじめ割り当てておく必要はありませんが、そうしておくと役に立つ場合もあります。ADAFRM でコンテナのエクステントを生成する場合、または Adabas ユーティリティでシーケンシャルファイルを生成する場合には、ディスクスペースは自動的に割り当てられます。スペースがあらかじめ割り当てられていない場合、最適アルゴリズムがコンテナのエクステントに使用されます。Adabas シーケンシャルファイルの場合は、その領域が 1 MB 以上ある場合、最大有効フリースペースの半分が割り当てられます。そのスペースだけでは足りなくなった場合、フリースペース領域が隣接していれば自動拡張が実行されます。

RAW セクションあたりのコンテナエクステントとシーケンシャルファイルの数は 338 に制限されます。

このユーティリティは多機能ユーティリティです。

処理フロー

graphics/adadev.png

データセット 環境
変数
記憶媒体 追加情報
コントロールステートメント stdin   ユーティリティマニュアル
ADADEV メッセージ stdout   メッセージおよびコード
Adabas シーケンシャルファイル DEVxyz(注意 1 を参照) ディスク、テープ(注意 2 を参照)  

注意:

  1. xyz は、PLG、CLG、00n、OUT、ERR、LOG、EXP、DTA、DVT のいずれか。
  2. このシーケンシャルファイルには、名前付きパイプを使用できます(詳細については、『Adabas Basics』の「ユーティリティの使用」を参照)。

シーケンシャルファイル DEVPLG、DEVCLG、DEV00n、DEVOUT、DEVERR、DEVEXP、DEVDTA、DEVDVT および DEVLOG は複数エクステントを持つことができます。複数のエクステントを持つシーケンシャルファイルの詳細については、『Adabas Basics』の「ユーティリティの使用」を参照してください。

チェックポイント

このユーティリティはチェックポイントを書き込みません。

制御パラメータ

次のコントロールパラメータを使用できます。

     ALLOCATE = keyword[,START_SECTOR = number]
                [,BLOCKSIZE = numberKB] ,SIZE = number [B|M]

     CHANGE = (keyword,keyword)

     COMBINE = keyword, DESTINATION = string

     COPY = keyword, DESTINATION = string

     DBID = number

     DEALLOCATE = {*|keyword}

     FREE_SPACE

     INITIALIZE

     LAYOUT

D    [NO]MOUNTCHECK

     MOVE = keyword, DESTINATION = string

     NEW_DBID = (container-name, new-dbid)

     REALLOCATE = {*|keyword}

     RESET

     RESIZE

M    SECTION = string

     UNLOCK = keyword

ALLOCATE

ALLOCATE = keyword[,START_SECTOR = number]
           [,BLOCKSIZE = numberKB] ,SIZE = number [B|M]

この機能は、指定されたキーワードに応じて Adabas コンテナファイルまたは Adabas シーケンシャルファイルに対するスペースを割り当てます。スペースは、開始セクタが指定されていない場合でも、最適なアルゴリズムを用いて割り当てられます。キーワードとして、値 ASSOx、DATAx、WORKx、TEMPx および SORTx(x は 1~最大エクステント数の間の数。『Adabas Basics』の「ユーティリティの使用」を参照)、PLG、CLG、BCK、BCKOUT、RECOUT、ERR、MUPLOG、MUPTMP、ORDEXP、DTA または DVT を使用できます。DBID パラメータは ASSO、DATA、WORK のファイルまたは PLG、CLG、BCK、BCKOUT、RECOUT に対してスペースが割り当てられる前に指定されなければいけません。

DBA はこの機能を使用して、あらかじめコンテナファイルまたは Adabas シーケンシャルファイルを割り当てることができます。パフォーマンスの上でも、このパラメータを使用することにより、(開始セクタを指定することで)フラグメントを回避し、今後作成するデータベースに対するスペースを確保することができます。

ADADBM または ADAFRM がディスクセクションでのコンテナファイルの作成に使用される場合、あらかじめ割り当てられたスペースは、使用可能であれば確保されます。あらかじめ割り当てられたスペースがなければ、最適なアルゴリズムを使用して領域確保が行われます。コンテナファイルにあらかじめ割り当てるサイズと、コンテナファイルの作成時のサイズは同にする必要があります。

START_SECTOR = number

このパラメータは、割り当てを開始するセクタを指定するものです。

BLOCKSIZE = numberKB

ブロック単位で割り当てを行っている場合、コンテナブロックサイズを指定するために、32 KB までの値を使用することができます。デフォルトは、ASSO コンテナファイルに対して 2 KB、他のすべてのコンテナファイルに対して 4 KB、および Adabasのシーケンシャルファイルに対して 1 KB です。

SIZE = number [B|M]

このパラメータは、割り当てられるエリアをブロック単位またはメガバイト単位で指定するものです。数値に "B" を付加するとサイズはブロック単位になります。デフォルトでは、サイズはメガバイト単位で認識されます。

CHANGE

CHANGE = (keyword, keyword)

このパラメータは、第 1 キーワードに指定されたコンテナファイルまたは Adabas シーケンシャルファイルのタイプを第 2 キーワードに指定したタイプに変更します。

キーワードの組み合わせは次のとおりです。

第 1キーワード 第 2キーワード
WORK1 TEMP1、SORT1、SORT2
TEMP1 WORK1、SORT1、SORT2
SORT1 WORK1、TEMP1、SORT2
SORT2 WORK1、TEMP1、SORT1
DTA MUPLOG
MUPLOG DTA
RECOUT PLG(* 注意を参照)
BCKOUT BCK(* 注意を参照)

注意:
(*)RECOUT[BCKOUT] が PLG.n[BCK00n] のコピーであれば、新しいシーケンシャルファイルの名前は対応する名前になります。

DBID パラメータは、キーワード WORK1、RECOUT、BCKOUT が使用される前に設定する必要があります。

自動再スタートが保留状態でなければ、任意のデータベースの WORK1 コンテナを SORT または TEMP コンテナに変更することができます。

COMBINE

COMBINE = keyword, DESTINATION = string

このパラメータは複数の Adabas シーケンシャルファイルのエクステントを 1 つのエクステントに結合します。キーワードは PLG.n、CLG.n、BCK00n、BCKOUT、RECOUT.n、ERR、MUPLOG、ORDEXP、DTA、DVT の値を取ることができます。またキーワードの後に、エクステントのラベル(m)を続けることができます。場合によっては、DBID パラメータの設定が必要になります(詳細については ALLOCATE を参照)。

COMBINE パラメータは任意のエクステントから開始できますが、最後のエクステント(エンドオブファイル)で終了しなければなりません。後続のエクステントは対話方式で定義することも、既定の環境変数で定義することもできます。DEVxyz を設定している場合、最初のエクステントはデフォルトのパス名から取られます。DEVxyz を設定していない場合、Adabas は最初のエクステントを探すために現在のディスクセクションを見ます。

"string" は、ディスクセクションの RAW インターフェイスに相当するデバイスファイルのパス名、テープデバイスのパス名、ファイルシステムの非エクステントファイルの名前(パス名)、またはピリオドです。

詳細については、『Adabas Basics』の「ユーティリティの使用」を参照してください。

例 1:

データベース 100 の PLOG 2 は、同じディスクセクション /dev/rdsk/c4d0s2 にすべて割り当てられる 3 エクステントで構成されます。

環境変数 設定
DEVPLG /dev/rdsk/c4d0s2 /dev/rdsk/c4d0s2

ADADEV コマンドは次のとおりです。

adadev: section=/dev/rdsk/... 
adadev: dbid=100
adadev: combine=plg.2(1)
adadev: destination=PLOG_2

PLOG 2 のすべてのエクステントは 1 つのファイルにまとめられ、PLOG_2 という名前で、ファイルシステムに書き込まれます。DEVPLG には同じセクションを 2 つ指定して、いつでも設定を解除したり、元に戻したりできるようにする必要があります。

例 2:

この例では、データベース 100 の PLOG 3 は 9 つのエクステントから構成されており、5 から 9 のエクステントは 4 つのディスクセクションにわたって配分されています。

環境変数 設定
DEVPLG /dev/rdsk/c3d0s2 # contains PLG.3(5) and PLG.3(9) EOF
DEVPLG2 /dev/rdsk/c4d0s2 # contains PLG.3(6)
DEVPLG3 /dev/rdsk/c5d0s2 # contains PLG.3(7)
DEVPLG4 /dev/rdsk/c6d0s2 # contains PLG.3(8)

ADADEV コマンドは次のとおりです。

adadev: section=/dev/rdsk/... 
adadev: dbid=100
adadev: combine=plg.3(5)
adadev: destination=PLOG.3(5)

PLOG 3 の 5 から 9 のエクステントはエクステント番号 5 と EOF のラベルを付けて PLOG 3 内の 1 つのエクステントに格納されます。結合した PLOG のエクステントは PLOG.3(5) という名前で現在のディレクトリ内に作成されます。

COPY

COPY = keyword, DESTINATION = string

この機能は、現在の位置から指定した位置(DESTINATION=文字列)にコンテナファイル(ASSO1、DATA1 など)またはシーケンシャルファイル(RECOUT、DVT など)をコピーします。

コンテナファイルに対して有効なキーワードは ASSOx、DATAx および WORKx です。x は『Adabas Basics』の「ユーティリティの使用」の説明にあるように、1~最大エクステント数の範囲の数字です。

Adabas シーケンシャルファイルのキーワードは PLG.n、CLG.n、BCK00n、BCKOUT、RECOUT.n、ERR、MUPLOG、ORDEXP、DTA、DVT です。Adabas シーケンシャルファイルのキーワードの n はエクステント番号を示しています。

コンテナファイルをコピーする場合、その前にまずコピー元の場所として適切な環境変数(例えば ASSO1)を設定する必要があります。

現在のディスクセクション内に Adabas シーケンシャルファイルをコピーする場合、SECTION パラメータの指定(例えば SECTION=/dev/c5d0s2)に従って、環境変数 DEVxyz(xyz はPLG、CLG、00n、OUT、ERR、LOG、EXP、DTA、DVTの値を取る)を Adabas シーケンシャルファイルまたはデバイスファイルに設定する必要があります。

DESTINATION キーワードには RAW ディスクセクションのパス名、テープデバイスのパス名、ファイルシステム内の非エクステントファイルのパス名、または現在のディスクセクション内にファイルをコピーすることを示す名前付きパイプまたはピリオド(.)を指定します。

場合によっては、COPY 機能を実行する前に、個別のファイルであることを明示するために DBID を指定する必要があります。DBID の指定が必要なファイルのリストについては、ALLOCATE 機能パラメータに関する説明を参照してください。

例:

adadev: section=/dev/rlv02
adadev: dbid=23
adadev: copy=WORK1, destination=/FS/fs0395/SAG/ada/db023/WORK1.023

WORK1 は RAW デバイスからファイルシステムにコピーされます。

環境変数 WORK1 は、値として /FS/fs0395/SAG/ada/db023/WORK1.023 を持ちます。

adadev: section=/dev/rlv02
adadev: dbid=023
adadev: copy=WORK1, destination=.

WORK1 はファイルシステムから現在選択している RAW デバイスにコピーされます。

DBID

DBID = number

このパラメータは、ASSO、DATA、WORK のコンテナファイルのデータベースまたは PLG、CLG、BCK、BCKOUT、RECOUT の Adabas シーケンシャルファイルのデータベースを指定します。

DEALLOCATE

DEALLOCATE = { * | keyword }

この機能は、指定されたキーワードに応じて、Adabas コンテナファイル、Adabas シーケンシャルファイル、または任意のデータベースの全エクステントの割り当てを解除(DEALLOCATE=*)します。キーワードは、ASSOx、DATAx、WORKx、TEMPx、SORTx、NUCTMPx、および NUCSRTx(x は『Adabas Basics』の「ユーティリティの使用」の説明にあるように、1~最大エクステント数の範囲の数字)、PLG、PLG.n、PLG*、CLG、CLG.n、CLG*、BCK、BCK00n、BCK*、BCKOUT、RECOUT、RECOUT.n、ERR、MUPLOG、MUPTMP、ORDEXP、DTA または DVT の値を取ります。Adabas シーケンシャルファイルのキーワードの後には、エクステントラベル(m)または(*)に続けることができます。場合によっては、DBID パラメータの設定が必要になります(詳細については ALLOCATE を参照)。

DBA は、このパラメータを使用して、コンテナファイルの割り当てを解除できます。例えば、データベースが必要でなくなった場合や、PLOG エクステントがテープにセーブされた場合です。割り当て解除されたスペースは空きスペースとして管理され、他のコンテナに割り当てられます。

注意:
ADADBM REDUCE_CONTAINER または ADADBM REMOVE_CONTAINER を使用して、RAW セクションに保存されているデータベースに必要なスペースを削減すると、RAW セクション内の対応するスペースが自動的に割り当て解除されます。この目的のために ADADEV DEALLOCATE を実行する必要はありません。

注意:
ADADEV DEALLOCATE を使用する際は注意してください。ADADEV DEALLOCATE は、コンテナがまだ必要かどうかをチェックしません。使用中のデータベースコンテナを指定した場合、対応するデータベースが破損します。

FREE_SPACE

FREE_SPACE

この機能は、現在のディスクセクションのどこに空きスペースがあるのかを表示します。この機能は、LAYOUT 機能のサブセットです。デフォルトのブロックサイズ単位での割り当てをより簡単にするために、この機能は、空き領域の大きさを 2 KB および 4 KB 単位でも表示します。

INITIALIZE

INITIALIZE

割り当て済みの領域と空き領域を管理するために、ディスクセクションの先頭にある数個のセクタが使用されます。この機能は、この管理部分を初期化します。Adabas によって使用される各ディスクセクションは、あらかじめ初期化されていなければなりません。Adabas を利用する目的でディスクセクションがアクセスされるときに、最初の段階で管理部分が検証されます。ディスクセクションは、この検証が失敗した場合にのみ初期化されます。

LAYOUT

LAYOUT

この機能は、ディスクセクション使用状況の要約情報を表示します。この機能を実行すると、コンテナエリア、Adabas シーケンシャルエリアだけでなく空きスペースもリストさます。また、コンテナエリアのステータス(割り当て済みまたは作成済み)の表示も行います。Adabas シーケンシャルファイルが作成中のステータスであることもあります。これは Adabas シーケンシャルファイルが割り当てられたスペースを使い尽くしても、フリーな状態のものがあり、増大しているからです。

電源障害が発生した場合には、TEMP、SORT コンテナは読み込みまたは書き込みがロックされることもあります(スタータスは rlocked または wlocked)。コンテナファイルのロック解除については、このセクションの UNLOCK 機能に関する説明を参照してください。

[NO]MOUNTCHECK

[NO]MOUNTCHECK

MOUNTCHECK を使用する場合、ADADEV は、ファイルシステムが、ADADEV SECTION パラメータに指定されたディスクにマウントされるかをチェックします。ファイルシステムがマウントされると、ADADEV は終了します。SECTION パラメータを使用する前に、NOMOUNTCHECK を指定すると、このチェックはスキップすることができます。

デフォルトは MOUNTCHECK です。

MOVE

MOVE = keyword, DESTINATION = string

MOVE 機能は基本的に COPY 機能と同じですが、違いはソースファイルを移動することです(詳細については COPY の説明箇所を参照)。

NEW_DBID

NEW_DBID = (container-name, new-dbid)

この機能は、RAW セクション内の Adabas ファイルの DBID を変更するために使用します。例えば、データベース番号を変更したり、新しい番号のデータベースに既存の PLOG を適用したりするときなどです。

コンテナ名に次を指定できます。

  • 関連データベース ID を持つすべてのコンテナ/シーケンシャルファイル(ASSO、DATA、PLG など)

  • セクション内のすべてのファイルを変更するための PLOG や CLOG とワイルドカード文字の組み合わせ(PLG*、CLG*)

  • 任意の PLOG(PLG.175 など)を指定して、シーケンシャルファイルのエクステント(PLG.175(1) など)があるとき、これらのオカレンスはすべて変更されます。

次をコンテナ名に指定することはできません。

  • DBID を持たないコンテナ(SORT、DTA など)

  • 特定の PLOGファイルエクステント(PLG.175(1) など)

次の例は、DBID を 1 から 2 に変更する方法です。

adadev section=xxx dbid=1 new_dbid=(asso1,2)
adadev section=xxx dbid=1 new_dbid=(plg.175,2)
adadev section=xxx dbid=1 new_dbid=(plg\*,2)

REALLOCATE

REALLOCATE = { * | keyword }

この機能は、スペースを割り当て解除し、単一ステップで直接割り当てます。キーワードは、DEALLOCATE パラメータと同じ値を取ることができます。50 KB 以上の Adabas シーケンシャルファイルのエリアは常に割り当て解除されます。

コンテナファイルを割り当て解除した後、それを再び同じ位置に割り当てる場合に、この機能を使用すると短時間で実行できます。これは特にデータベースを作成中に ADAFRM が異常終了し、いくつかのコンテナファイルがすでに作成され、ある開始セクタから始まる領域がすでに確保されている場合に便利です。

ディスクセクション内のコンテナごとにフラグが存在します。このフラグは、コンテナまたはAdabas シーケンシャルファイルのどちらが実際に作成されているのか、またはスペースがそのコンテナだけに割り当てられているのかどうかを表します。セキュリティの理由から、既存のコンテナまたは Adabas シーケンシャルファイルは再作成するだけでは上書きすることができません。まず、割り当て解除ないし再割り当てを行わなければいけません。

RESET

RESET

セクションが初期化される場合、現在のディスクセクションの管理部分はバイナリのゼロに設定されます。この機能は、初期化対象のディスクセクションが、初期化済みのディスクセクションと開始セクタが重複しているディスクセクションを処理化する場合に使用します。

RESIZE

RESIZE

新規にディスクセクションを作成する場合に、そのディスクセクションと現在のディスクセクションの開始セクタと重複しているのであれば、この機能を使用したときに、新規セクションのサイズに合わせてセクションのサイズが更新されます。新規セクションは現在のセクションよりも大きくても小さくてもかまいません。より大きくする場合、セクション末尾のフリースペースが増加されます。小さくする場合、セクション末尾の既存のフリースペースが縮小されます。

SECTION

SECTION = string

このパラメータは、使用対象となるディスクセクションを選択するためのものです。該当ディスクセクションの RAW I/O インターフェイスを表すデバイスファイルの名前(パス名)を指定する必要があります。

UNLOCK

UNLOCK = keyword

このパラメータは異常終了したユーティリティのコンテナをロック解除するために使います(kill-9 など)。キーワードは値 TEMP1、SORT1、または SORT2 を取ることができます。

電源障害が発生すると、コンテナファイルはロックされますが、ファイルを使用する必要がある場合には、UNLOCK 機能を使用して、ファイルのロックを解除する必要があります。Adabasシーケンシャルファイルが 1 つ以上の物理エクステントから構成されている場合、最後のエクステントのステータスフィールドに EOF を付けなければいけません。