ADAULD(ファイルのアンロード)

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

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


機能概要

ユーティリティ ADAULD は、Adabas ファイルをアンロードします。すなわち、データベースまたは Adabas バックアップコピーからレコードが読み込まれ、シーケンシャルファイルに書き込まれます。

ファイルをアンロードする主な理由は次のとおりです。

  • スペース割り当ての変更、インデックス、アドレスコンバータまたはデータストレージに割り当てられた論理エクステント数の削減、パディングファクタの変更を行うため。この場合には、ファイルのアンロード、削除、再ロードを行う必要があります。これらの機能は ADAORD にも装備されています。

  • 同じデータを持つ 1 つまたは複数のテストファイルの作成を行うため。この手順では、ファイルをアンロードし、それから異なるファイル番号を使用して再ロードする必要があります。この機能は ADAORD にも装備されています。

  • 後続の ADAMUP への入力のためにファイルからデータの抽出を行うため。これは、本番データベースからアーカイブデータベースにレコードを移行するときに便利です。

  • Adabas バックアップコピーにアーカイブされたファイルの再設定を行うため。

ファイルをデータベースからアンロードするときは、次の順番でレコードをアンロードできます。

論理順

レコードは、ユーザー指定ディスクリプタの値に基づいて昇順にアンロードされます。

ISN 順

レコードは、昇順の ISN 順でアンロードされます。

物理順

レコードは、データストレージ内で物理的に位置する順番でアンロードされます。

論理順または ISN 順でアンロードする場合には、ニュークリアスがアクティブでなければなりません。ADAULD がデータベースコンテナファイルにアクセスするのであれば、物理順でアンロードするときに、ニュークリアスはアクティブでなくてもかまいません。

Adabas バックアップコピーからアンロードする場合は、レコードは ADABCK によって格納された順にアンロードされます。これは、一般には昇順のデータ RABN です。ただし、DRIVES オプションが使用された場合またはダンプがオンラインで行われた場合には、必ずしもこの順番になるとは限りません(詳細については、ユーティリティ ADABCK の DRIVES オプションの説明を参照)。

アンロードされたレコードは、圧縮形式で出力され、圧縮ユーティリティ ADACMP によって生成されるレコードと同一です。各データレコードの先頭にはその ISN が付くので、ファイルの再ロード時にこれらの ISN をユーザー ISN として使用できます(詳細についてはユーティリティ ADAMUP の USERISN オプションの説明を参照)。

ユーザーは、UNLOAD プロセスの間に、ファイルに対するインデックスの再作成に必要なディスクリプタ値が省略されるように指定できます(SHORT オプション)。これを指定するとアンロード処理時間が短くなります。出力を ADAMUP に対する直接の入力とする場合には、このオプションを使用しないでください。

注意:
ファイルに照合ディスクリプタが含まれている場合、アンロードされたデータの ICU バージョンは変更されません。ADAMUP を使用して、同じフィールドを含んでいて ICU バージョンは異なるファイルにデータをロードできますが、これはファイルが空で、ADAMUP に NEW_FDT オプションを使用している場合に限ります。

完了すると、ADAULD は以下のいずれかの終了ステータス値を返します:

0

レコードは正常にアンロードされ、データベースの破損は検出されませんでした。

12

アンロードに成功しましたが、破損したデータレコードが検出され、それらはアンロードされませんでした。ADAVFY を実行して、データベースの破損に関する詳細情報を取得することをお勧めします。

15

アンロードは成功しましたが、アンロードされたレコードはありませんでした。少なくとも 1 つのレコードがアンロードされた後でのみ追加のアクティビティが必要な場合に、スクリプトでこのステータス値を確認できます。

255

アンロードに失敗しました。

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

処理フロー

graphics/adauld1.png

BACKUP_COPY Function

シーケンシャルファイル ULD00n、ULDDTA、ULDDVT は複数エクステントを持つことができます。複数のエクステントを持つファイルの詳細については、『Adabas Basics』の「ユーティリティの使用」を参照してください。

graphics/adauld2.png

DBID Function

シーケンシャルファイル 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 参照

注意:

  1. このシーケンシャルファイルには、名前付きパイプを使用できます(OpenVMS にはない。詳細については、『Adabas Basics』の「ユーティリティの使用」を参照)。
  2. オフラインでのアンロードに必要です。物理順に従ってオンラインでアンロードするときのスピードも高くなります。
  3. オンラインオプションを使用したバックアップコピーからアンロードする場合だけ必要です。ユーティリティをオフラインで実行するとき、環境変数 TEMP1 を WORK1 と同じ値に設定すると、自動再スタートが保留状態でなければ、WORK を TEMP として使用することができます。
  4. ADAULD BACKUP_COPY 機能は、TEMP を探すために DBxxx.INI ファイルを読み込みません。そのため、TEMP は環境変数で指定する必要があります。

チェックポイント

次の表は、各機能に対するニュークリアス条件と記録チェックポイントを示しています。

機能 ニュークリアスのアクティブ化が必要 ニュークリアスの非アクティブ化が必要 ニュークリアスは不要 記録チェックポイント
BACKUP_COPY     X -
DBID X(注 1 参照) X(注 3 参照) X(注 2 参照) SYNX

注意:

  1. 論理順および ISN 順でアンロードする場合、または ADAULD がデータベースコンテナファイルにアクセスできない場合(例えばリモートノードからアンロードする場合)。ファイルに LOB データが含まれる場合も適用されます。LOB データも論理順でアンロードする必要があるからです。サーチバッファとバリューバッファを指定した場合も適用されます。
  2. 物理順でアンロードし、ADAULD がデータベースコンテナファイルにアクセスする場合。
  3. Adabas システムファイルをアンロードする場合。

制御パラメータ

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

     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

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

このパラメータは、アンロードするファイルの FDT を表示します。

FILE = number

このパラメータは、アンロードするファイルを指定します。

NUMREC = number

このパラメータは、アンロード時にファイルから取得するデータレコードの数を制限します。NUMREC を省略し、SKIPREC を指定しなかった場合、すべてのレコードがアンロードされます。再ロードするファイルに LOB ファイルが割り当てられている場合、NUMREC を使用することはできません。

[NO]ONLINE

このオプションは、バックアップコピーの中に、ファイルのアンロード対象であるオンラインデータストレージブロックを入れてもよいかどうかを指示します。

バックアップコピーの中にオンラインデータストレージブロックが入っている可能性がある場合は、バックアップコピーの処理時に 2 つのパスが作成されます。これは、各データストレージブロックの最新バージョンを見つける必要があるからです。このパラメータを NOONLINE に設定した場合には、1 つのパスでアンロードされるため、かなりの処理時間の節約となりますが、オンラインデータストレージブロックが検出されると、ADAULD がエラーメッセージを発行して終了する場合があります。

使用されるデフォルトは、バックアップが作成されたときに Adabas ニュークリアスがアクディブだったかどうかに依存します。

[NO]SHORT

このオプションは、インデックスの構築に使用するディスクリプタ値を出力に含めるか省略するかを指定します。

SHORT を指定した場合、ディスクリプタ値はアンロードされません。

出力を、一括更新ユーティリティの入力として直接使用する場合、NOSHORT モードでファイルをアンロードする必要があります。

SHORT と SINGLE_FILE は相互に排他的です。

NOSHORT がデフォルトです。

[NO]SINGLE_FILE

このオプションを SINGLE_FILE に設定した場合、ADAULD は DVT および DATA 情報を単一のデータセット(ULDDTA)に書き込みます。

SINGLE_FILE と SHORT は相互に排他的です。

デフォルトは NOSINGLE_FILE です。

SKIPREC = number

このパラメータは、アンロードを開始する前にスキップするレコード数を指定します。再ロードするファイルに LOB ファイルが割り当てられている場合、SKIPREC を使用することはできません。

[NO]USEREXIT

ユーザー作成ルーチンはダイナミックにロードされます。入力パラメータブロックへのポインタおよび出力パラメータへのポインタはコールごとに渡されます(詳細については、インクルードファイル adauex.h を参照)。データベースから取得された各レコードに対して、レコードをアンロードするか(アンロードファイルに書き込むか)、スキップするか、直ちに実行を終了するかを選択できます。

環境変数/論理名 ADAUEX_7 はユーザー作成ルーチンをポイントしている必要があります。

詳細については、『管理マニュアル』の「ユーザー出口とハイパー出口」に関する説明を参照してください。

NOUSEREXIT がデフォルトです。

DBID

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

このパラメータは、アンロードするファイルの FDT を表示します。

FILE = number

このパラメータは、アンロードするファイルを指定します。LOB ファイルを指定することはできません。

[NO]LITERAL

このオプションを LITERAL に設定する場合、先頭が空白の文字や小文字をバリューバッファに指定できるようになり、文字列の中でも有効になります。つまり、先頭の空白や小文字が削除されたり、大文字に変換されたりすることはありません。NOLITERAL を設定すると、値を 16 進数値として指定する場合を除いて、小文字が大文字に変換され、先頭の空白は削除されます。

NOLITERAL がデフォルトです。

NUMREC = number

このパラメータは、アンロード時にファイルから取得するデータレコードの数を制限します。NUMREC が省略されて SKIPREC と STARTISN のどちらも指定されないと、ファイルの全レコードがアンロードされます。

SEARCH_BUFFER = string

このパラメータは、指定した選択基準に合うようにアンロードするレコードを制限します。選択条件は、『コマンドリファレンスマニュアル』に記述されているサーチバッファエントリの構文に従って指定する必要があります。

このパラメータの最大長は 200 バイトです。エントリが複雑な場合は、次の方法を使用します。

adauld: search_buffer=aa,20,a,d,\
> ab,10,a.

ADAULD は次のように連結します。

aa,20,a,d,ab,10,a.

選択条件に対応する値は VALUE_BUFFER パラメータで指定します。

[NO]SHORT

このオプションは、インデックスの構築に使用するディスクリプタ値を出力に含めるか省略するかを指定します。

SHORT を指定した場合、ディスクリプタ値はアンロードされません。

出力を、一括更新ユーティリティの入力として直接使用する場合、NOSHORT モードでファイルをアンロードする必要があります。

SHORT と SINGLE_FILE は相互に排他的です。

NOSHORT がデフォルトです。

[NO]SINGLE_FILE

このオプションを SINGLE_FILE に設定すると、ADAULD は DVT 情報および DTA 情報を 1 つのデータセット(ULDDTA)に書き込みます。

SINGLE_FILE と SHORT は相互に排他的です。

デフォルトは NOSINGLE_FILE です。

SKIPREC = number

このパラメータは、アンロードを始める前にスキップされるデータレコード数を指定します。

STARTISN パラメータと組み合わせて使用すると、まず開始位置に移動してから、スキップが実行されます。

SORTSEQ = string

このパラメータは、ファイルをアンロードするときの順番を制御します。指定する場合、ディスクリプタ、サブディスクリプタ、またはスーパーディスクリプタのフィールド名、またはキーワード ISN のいずれかを指定できます。デフォルトは物理順です。

  1. 論理順

    ディスクリプタまたはサブ/スーパーディスクリプタのフィールド名を文字列として指定すると、フィールド名が示すディスクリプタ値の昇順の論理順でレコードがアンロードされます。フィールド名は、ピリオディックグループ内に含まれるディスクリプタを示すことはありません。

    フィールド名がマルチプルバリューフィールドであるディスクリプタを示す場合、同じレコードが複数回アンロードされることもあります(レコード内の異なるディスクリプタ値ごとに 1 回)。そのため、アンロードの順番を制御するうえで、このタイプのディスクリプタを使用することは望ましくありません。

    フィールド名が NU または NC パラメータ付きで定義されたディスクリプタを示す場合は、そのディスクリプタに対して空値を持つレコードはアンロードされません。

  2. ISN 順

    ISN を指定すると、レコードは昇順の ISN 順でアンロードされます。

  3. 物理順

    SORTSEQ パラメータを省略すると、データストレージに格納されている物理順に従ってレコードはアンロードされます。

    サーチバッファを指定していて SORTSEQ パラメータを省略した場合には、レコードは ISN の昇順にアンロードされます。

STARTISN = number

SORTSEQ = ISN オプションを使用するか、サーチバッファを指定する場合、ファイル内の最小 ISN からではなく、指定の ISN からアンロードを開始することができます。指定した ISN が存在しない場合、その次に大きい ISN からアンロードが開始されます。

[NO]USEREXIT

ユーザー作成ルーチンはダイナミックにロードされます。入力パラメータブロックへのポインタおよび出力パラメータへのポインタはコールごとに渡されます(詳細については、インクルードファイル adauex.h を参照)。データベースから取得された各レコードに対して、レコードをアンロードするか(アンロードファイルに書き込むか)、スキップするか、直ちに実行を終了するかを選択できます。

環境変数/論理名 ADAUEX_7 はユーザー作成ルーチンをポイントしている必要があります。

詳細については、『管理マニュアル』の「ユーザー出口とハイパー出口」に関する説明を参照してください。

NOUSEREXIT がデフォルトです。

VALUE_BUFFER = string

SEARCH_BUFFER パラメータで選択条件を指定した場合、その選択条件に対応する値をこのパラメータに指定します。このパラメータの最大長は 2000 バイトです。

注意:
「[NO]LITERAL」も参照してください。これは、バリューバッファの大文字への変換を制御します。

例 1

adauld: backup_copy = 3, file = 6

データベース 3 のバックアップコピーのファイル 6 がアンロードされます。[NO]ONLINE オプションのデフォルトの設定によっては、TEMP データセットとバックアップコピーにアクセスするための 2 つのパスが必要なることがあります。

例 2

adauld: backup_copy = 3, file = 6
adauld: single, noonline

同じファイルがアンロードされます。データレコードとディスクリプタバリューテーブルエントリの両方が同じ出力ファイルに書き込まれます。オンラインブロックがあるかどうか不明なため、バックアップコピーは 1 回のパスで処理されます。TEMP データセットは必要ありません。

例 3

adauld: dbid = 3, file = 6, skiprec = 100

データベース 3 のファイル 6 がアンロードされます。レコードは、データストレージに格納されている物理順に従ってアンロードされます。検出された最初の 100 レコードは出力ファイルに書き込まれません。

例 4

adauld: dbid = 3, file = 6
adauld: numrec = 10
adauld: sortseq = ab
adauld: short

データベース 3 のファイル 6 からの 10 レコードがアンロードされます。ディスクリプタ AB の値が、レコードの検索順序の制御に使用されます。再ロード時にインバーテッドリストを再作成するのに必要な値は省略されています。

例 5

adauld: dbid = 3, file = 6, sortseq = isn, startisn = 123

データベース 3 のファイル 6 がアンロードされます。レコードは、ISN 123 で始まる昇順の ISN 順でアンロードされます。

TEMP データセットのスペース見積もり

NOONLINE オプションを設定せずに Adabas バックアップコピーからアンロードする場合、オンラインブロックオカレンスについての情報を累積するために TEMP データセットが必要です。

TEMP ブロックサイズのデフォルトを 4 キロバイトとして概算で算出する場合には、公式 TRH=DRH/1000 を使用できます。

次の公式は、正確な容量の計算に使用できます。

X = ENTIRE ((DRH / BSTD) * 4)

TRH = X + ENTIRE (X / BSTD / 8) + 1

上記式内の各項目の意味は次のとおりです。

ENTIRE

2 番目に大きい整数値。

BSTD

TEMP ブロックサイズ(バイト単位)。

DRH

バックアップコピー上のデータベース内の最大データストレージ RABN。ADABCK ユーティリティの SUMMARY 機能を使用して、この数を得ることができます。

TRH

TEMP に必要な最大 RABN。

再スタートに関する考慮事項

ADAULD は再スタート機能を備えていません。中断された ADAULD の実行は、最初から再実行しなければなりません。