このドキュメントでは ADAULD ユーティリティについて説明します。
次のトピックについて説明します。
ユーティリティ ADAULD は、Adabas ファイルをアンロードします。すなわち、データベースまたは Adabas バックアップコピーからレコードが読み込まれ、シーケンシャルファイルに書き込まれます。
ファイルをアンロードする主な理由は次のとおりです。
スペース割り当ての変更、インデックス、アドレスコンバータまたはデータストレージに割り当てられた論理エクステント数の削減、パディングファクタの変更を行うため。この場合には、ファイルのアンロード、削除、再ロードを行う必要があります。これらの機能は ADAORD にも装備されています。
同じデータを持つ 1 つまたは複数のテストファイルの作成を行うため。この手順では、ファイルをアンロードし、それから異なるファイル番号を使用して再ロードする必要があります。この機能は ADAORD にも装備されています。
後続の ADAMUP への入力のためにファイルからデータの抽出を行うため。これは、本番データベースからアーカイブデータベースにレコードを移行するときに便利です。
Adabas バックアップコピーにアーカイブされたファイルの再設定を行うため。
ファイルをデータベースからアンロードするときは、次の順番でレコードをアンロードできます。
論理順または ISN 順でアンロードする場合には、ニュークリアスがアクティブでなければなりません。ADAULD がデータベースコンテナファイルにアクセスするのであれば、物理順でアンロードするときに、ニュークリアスはアクティブでなくてもかまいません。
Adabas バックアップコピーからアンロードする場合は、レコードは ADABCK によって格納された順にアンロードされます。これは、一般には昇順のデータ RABN です。ただし、DRIVES オプションが使用された場合またはダンプがオンラインで行われた場合には、必ずしもこの順番になるとは限りません(詳細については、ユーティリティ ADABCK の DRIVES オプションの説明を参照)。
アンロードされたレコードは、圧縮形式で出力され、圧縮ユーティリティ ADACMP によって生成されるレコードと同一です。各データレコードの先頭にはその ISN が付くので、ファイルの再ロード時にこれらの ISN をユーザー ISN として使用できます(詳細についてはユーティリティ ADAMUP の USERISN オプションの説明を参照)。
ユーザーは、UNLOAD プロセスの間に、ファイルに対するインデックスの再作成に必要なディスクリプタ値が省略されるように指定できます(SHORT オプション)。これを指定するとアンロード処理時間が短くなります。出力を ADAMUP に対する直接の入力とする場合には、このオプションを使用しないでください。
注意:
ファイルに照合ディスクリプタが含まれている場合、アンロードされたデータの ICU バージョンは変更されません。ADAMUP を使用して、同じフィールドを含んでいて ICU バージョンは異なるファイルにデータをロードできますが、これはファイルが空で、ADAMUP
に NEW_FDT オプションを使用している場合に限ります。
完了すると、ADAULD は以下のいずれかの終了ステータス値を返します:
このユーティリティは単一機能ユーティリティです。
シーケンシャルファイル ULD00n、ULDDTA、ULDDVT は複数エクステントを持つことができます。複数のエクステントを持つファイルの詳細については、『Adabas Basics』の「ユーティリティの使用」を参照してください。
シーケンシャルファイル ULDDTA、ULDDVT は複数エクステントを持つことができます。複数のエクステントを持つファイルの詳細については、『Adabas Basics』の「ユーティリティの使用」を参照してください。
データセット | 環境 変数/ 論理名 |
記憶 媒体 |
追加情報 |
---|---|---|---|
アソシエータ | ASSOx | ディスク、テープ | 注 2 参照 |
データストレージ | DATAx | ディスク、テープ | 注 2 参照 |
バックアップコピー | ULD00n | ディスク、テープ | ADABCK の DUMP 機能の出力、ADAULD に対する入力 |
アンロードデータ | ULDDTA | ディスク、テープ(注 1 参照) | |
アンロードディスクリプタ値 | ULDDVT | ディスク、テープ(注 1 参照) | |
コントロールステートメント | stdin/ SYS$INPUT |
ユーティリティマニュアル | |
ADAULD メッセージ | stdout/ SYS$OUTPUT |
メッセージおよびコード | |
一時ストレージ | TEMPx | ディスク、テープ | 注 3 と 4 を参照 |
ワークストレージ | WORK1 | ディスク、テープ | 注 2 参照 |
注意:
次の表は、各機能に対するニュークリアス条件と記録チェックポイントを示しています。
機能 | ニュークリアスのアクティブ化が必要 | ニュークリアスの非アクティブ化が必要 | ニュークリアスは不要 | 記録チェックポイント |
---|---|---|---|---|
BACKUP_COPY | X | - | ||
DBID | X(注 1 参照) | X(注 3 参照) | X(注 2 参照) | SYNX |
注意:
次のコントロールパラメータを使用できます。
BACKUP_COPY = number, FILE = number [,FDT] [,NUMREC = number] D [,[NO]ONLINE] D [, [NO]SHORT | [NO]SINGLE_FILE ] [,SKIPREC = number] D [,[NO]USEREXIT] DBID = number , FILE = number [,FDT] D [,[NO]LITERAL] [,NUMREC = number] [,SEARCH_BUFFER = string, VALUE_BUFFER = string] D [, [NO]SHORT | [NO]SINGLE_FILE ] [,SKIPREC = number] [,SORTSEQ = { string | ISN } ] [,STARTISN = number] D [,[NO]USEREXIT]
BACKUP_COPY = number ,FILE = number [,FDT] [,NUMREC = number] [,[NO]ONLINE] [,[NO]SHORT | [NO]SINGLE_FILE ] [,SKIPREC = number] [,[NO]USEREXIT]
このパラメータは、Adabas バックアップコピーからレコードをアンロードするものです。LOB ファイルを指定することはできません。"BACKUP_COPY=number" は、バックアップコピー元のデータベース ID を指定し、"FILE=number" は、ファイル番号を指定します。オフラインおよびオンライン両方のバックアップコピーを使用できます。指定ファイルに LOB ファイルが割り当てられている場合、ADAMUP パラメータ NUMREC や SKIPREC を使用した部分的再ロードはできません。
このパラメータは、アンロードするファイルの FDT を表示します。
このパラメータは、アンロードするファイルを指定します。
このパラメータは、アンロード時にファイルから取得するデータレコードの数を制限します。NUMREC を省略し、SKIPREC を指定しなかった場合、すべてのレコードがアンロードされます。再ロードするファイルに LOB ファイルが割り当てられている場合、NUMREC を使用することはできません。
このオプションは、バックアップコピーの中に、ファイルのアンロード対象であるオンラインデータストレージブロックを入れてもよいかどうかを指示します。
バックアップコピーの中にオンラインデータストレージブロックが入っている可能性がある場合は、バックアップコピーの処理時に 2 つのパスが作成されます。これは、各データストレージブロックの最新バージョンを見つける必要があるからです。このパラメータを NOONLINE に設定した場合には、1 つのパスでアンロードされるため、かなりの処理時間の節約となりますが、オンラインデータストレージブロックが検出されると、ADAULD がエラーメッセージを発行して終了する場合があります。
使用されるデフォルトは、バックアップが作成されたときに Adabas ニュークリアスがアクディブだったかどうかに依存します。
このオプションは、インデックスの構築に使用するディスクリプタ値を出力に含めるか省略するかを指定します。
SHORT を指定した場合、ディスクリプタ値はアンロードされません。
出力を、一括更新ユーティリティの入力として直接使用する場合、NOSHORT モードでファイルをアンロードする必要があります。
SHORT と SINGLE_FILE は相互に排他的です。
NOSHORT がデフォルトです。
このオプションを SINGLE_FILE に設定した場合、ADAULD は DVT および DATA 情報を単一のデータセット(ULDDTA)に書き込みます。
SINGLE_FILE と SHORT は相互に排他的です。
デフォルトは NOSINGLE_FILE です。
このパラメータは、アンロードを開始する前にスキップするレコード数を指定します。再ロードするファイルに LOB ファイルが割り当てられている場合、SKIPREC を使用することはできません。
ユーザー作成ルーチンはダイナミックにロードされます。入力パラメータブロックへのポインタおよび出力パラメータへのポインタはコールごとに渡されます(詳細については、インクルードファイル adauex.h を参照)。データベースから取得された各レコードに対して、レコードをアンロードするか(アンロードファイルに書き込むか)、スキップするか、直ちに実行を終了するかを選択できます。
環境変数/論理名 ADAUEX_7 はユーザー作成ルーチンをポイントしている必要があります。
詳細については、『管理マニュアル』の「ユーザー出口とハイパー出口」に関する説明を参照してください。
NOUSEREXIT がデフォルトです。
DBID = number ,FILE = number [,FDT] [,[NO]LITERAL [,NUMREC = number] [,SEARCH_BUFFER = string] [,[NO]SHORT | [NO]SINGLE_FILE ] [,SKIPREC = number] [,SORTSEQ = { string | ISN }] [,STARTISN = number] [,[NO]USEREXIT] [,VALUE_BUFFER = string]
このパラメータは、指定データベースからレコードをアンロードするものです。
このパラメータは、アンロードするファイルの FDT を表示します。
このパラメータは、アンロードするファイルを指定します。LOB ファイルを指定することはできません。
このオプションを LITERAL に設定する場合、先頭が空白の文字や小文字をバリューバッファに指定できるようになり、文字列の中でも有効になります。つまり、先頭の空白や小文字が削除されたり、大文字に変換されたりすることはありません。NOLITERAL を設定すると、値を 16 進数値として指定する場合を除いて、小文字が大文字に変換され、先頭の空白は削除されます。
NOLITERAL がデフォルトです。
このパラメータは、アンロード時にファイルから取得するデータレコードの数を制限します。NUMREC が省略されて SKIPREC と STARTISN のどちらも指定されないと、ファイルの全レコードがアンロードされます。
このパラメータは、指定した選択基準に合うようにアンロードするレコードを制限します。選択条件は、『コマンドリファレンスマニュアル』に記述されているサーチバッファエントリの構文に従って指定する必要があります。
このパラメータの最大長は 200 バイトです。エントリが複雑な場合は、次の方法を使用します。
adauld: search_buffer=aa,20,a,d,\ > ab,10,a.
ADAULD は次のように連結します。
aa,20,a,d,ab,10,a.
選択条件に対応する値は VALUE_BUFFER パラメータで指定します。
このオプションは、インデックスの構築に使用するディスクリプタ値を出力に含めるか省略するかを指定します。
SHORT を指定した場合、ディスクリプタ値はアンロードされません。
出力を、一括更新ユーティリティの入力として直接使用する場合、NOSHORT モードでファイルをアンロードする必要があります。
SHORT と SINGLE_FILE は相互に排他的です。
NOSHORT がデフォルトです。
このオプションを SINGLE_FILE に設定すると、ADAULD は DVT 情報および DTA 情報を 1 つのデータセット(ULDDTA)に書き込みます。
SINGLE_FILE と SHORT は相互に排他的です。
デフォルトは NOSINGLE_FILE です。
このパラメータは、アンロードを始める前にスキップされるデータレコード数を指定します。
STARTISN パラメータと組み合わせて使用すると、まず開始位置に移動してから、スキップが実行されます。
このパラメータは、ファイルをアンロードするときの順番を制御します。指定する場合、ディスクリプタ、サブディスクリプタ、またはスーパーディスクリプタのフィールド名、またはキーワード ISN のいずれかを指定できます。デフォルトは物理順です。
論理順
ディスクリプタまたはサブ/スーパーディスクリプタのフィールド名を文字列として指定すると、フィールド名が示すディスクリプタ値の昇順の論理順でレコードがアンロードされます。フィールド名は、ピリオディックグループ内に含まれるディスクリプタを示すことはありません。
フィールド名がマルチプルバリューフィールドであるディスクリプタを示す場合、同じレコードが複数回アンロードされることもあります(レコード内の異なるディスクリプタ値ごとに 1 回)。そのため、アンロードの順番を制御するうえで、このタイプのディスクリプタを使用することは望ましくありません。
フィールド名が NU または NC パラメータ付きで定義されたディスクリプタを示す場合は、そのディスクリプタに対して空値を持つレコードはアンロードされません。
ISN 順
ISN を指定すると、レコードは昇順の ISN 順でアンロードされます。
物理順
SORTSEQ パラメータを省略すると、データストレージに格納されている物理順に従ってレコードはアンロードされます。
サーチバッファを指定していて SORTSEQ パラメータを省略した場合には、レコードは ISN の昇順にアンロードされます。
SORTSEQ = ISN オプションを使用するか、サーチバッファを指定する場合、ファイル内の最小 ISN からではなく、指定の ISN からアンロードを開始することができます。指定した ISN が存在しない場合、その次に大きい ISN からアンロードが開始されます。
ユーザー作成ルーチンはダイナミックにロードされます。入力パラメータブロックへのポインタおよび出力パラメータへのポインタはコールごとに渡されます(詳細については、インクルードファイル adauex.h を参照)。データベースから取得された各レコードに対して、レコードをアンロードするか(アンロードファイルに書き込むか)、スキップするか、直ちに実行を終了するかを選択できます。
環境変数/論理名 ADAUEX_7 はユーザー作成ルーチンをポイントしている必要があります。
詳細については、『管理マニュアル』の「ユーザー出口とハイパー出口」に関する説明を参照してください。
NOUSEREXIT がデフォルトです。
SEARCH_BUFFER パラメータで選択条件を指定した場合、その選択条件に対応する値をこのパラメータに指定します。このパラメータの最大長は 2000 バイトです。
注意:
「[NO]LITERAL」も参照してください。これは、バリューバッファの大文字への変換を制御します。
adauld: backup_copy = 3, file = 6
データベース 3 のバックアップコピーのファイル 6 がアンロードされます。[NO]ONLINE オプションのデフォルトの設定によっては、TEMP データセットとバックアップコピーにアクセスするための 2 つのパスが必要なることがあります。
adauld: backup_copy = 3, file = 6 adauld: single, noonline
同じファイルがアンロードされます。データレコードとディスクリプタバリューテーブルエントリの両方が同じ出力ファイルに書き込まれます。オンラインブロックがあるかどうか不明なため、バックアップコピーは 1 回のパスで処理されます。TEMP データセットは必要ありません。
adauld: dbid = 3, file = 6, skiprec = 100
データベース 3 のファイル 6 がアンロードされます。レコードは、データストレージに格納されている物理順に従ってアンロードされます。検出された最初の 100 レコードは出力ファイルに書き込まれません。
adauld: dbid = 3, file = 6 adauld: numrec = 10 adauld: sortseq = ab adauld: short
データベース 3 のファイル 6 からの 10 レコードがアンロードされます。ディスクリプタ AB の値が、レコードの検索順序の制御に使用されます。再ロード時にインバーテッドリストを再作成するのに必要な値は省略されています。
adauld: dbid = 3, file = 6, sortseq = isn, startisn = 123
データベース 3 のファイル 6 がアンロードされます。レコードは、ISN 123 で始まる昇順の ISN 順でアンロードされます。
NOONLINE オプションを設定せずに Adabas バックアップコピーからアンロードする場合、オンラインブロックオカレンスについての情報を累積するために TEMP データセットが必要です。
TEMP ブロックサイズのデフォルトを 4 キロバイトとして概算で算出する場合には、公式 TRH=DRH/1000 を使用できます。
次の公式は、正確な容量の計算に使用できます。
X = ENTIRE ((DRH / BSTD) * 4) TRH = X + ENTIRE (X / BSTD / 8) + 1
上記式内の各項目の意味は次のとおりです。
ADAULD は再スタート機能を備えていません。中断された ADAULD の実行は、最初から再実行しなければなりません。