ADAREC(データベースまたはファイルのリカバリ)

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

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


機能概要

ADAREC ユーティリティには、次のようなデータベースリカバリ機能が含まれます。

  • CLOSE 機能は、ディスクセクション内の異常終了したプロテクションログファイルにエンドオブファイルを明示的に書き込みます(UNIX のみ)。

  • LIST 機能は、プロテクションログに関する情報をリストします。

  • REGENERATE 機能は、指定した 2 つのチェックポイント間で行われた更新をすべて再適用します。使用されるチェックポイントは、通常、チェックポイントコマンド(C1)の結果ですが、EXU ユーザーまたはユーティリティ処理からの OP コマンドによって取得された内部チェックポイントでも構いません。データベース全体を再生成する場合、EXCLUDE_FILES オプションを使用して一部のファイルを除外することができます。このオプションとともに指定したファイルは再生成されず、除外された更新がレポートされます。

REGENERATE 機能が SYNP チェックポイント時点で終了すると、ADAREC はこの PLOG から、次回の実行時の再開位置が他にもあるか見つけるために、現在の PLOG を検索します。その後、ADAREC の再開前に実行しなければならない他のユーティリティ機能のリストが表示されます。1 つまたは複数の SYNP チェックポイントが検出された場合、ADAREC は次のように終了します。

  • PLOG に ADAREC の再起動によって適用される追加トランザクションが含まれている場合は、出口コード 14 で終了します。

  • それ以外の場合は、出口コード 12 で終了します。

算出された再開位置は、BLOCK= または CHECKPOINT= を入力することによってリセットまたは変更することができます。使用可能なシステムのチェックポイントのタイプについては、このマニュアルのデータベースレポートユーティリティ ADAREP の説明を参照してください。

通常、REGENERATE 機能は全ログを終了し、トランザクションの確認が行われると終了します。この機能は、ADABCK ユーティリティの RESTORE 機能によってデータベース(または 1 つ以上のファイル)を以前の状態に戻した後でかなり頻繁に使用されます。

エラーファイルにレコードが書き込まれると、ユーティリティはゼロ以外のステータスで終了します。

注意:

  1. ADAREC を使用して複数のファイルを同時に再生成する場合、最初にニュークリアスパラメータ LBP の値を大きくしてください。これは、ADAREC がデータベースに対して大量の更新を行うためです。LBP の値が十分大きくない場合、Adabas はレスポンスコード 162 を返します。
  2. 出口コード 12 は、バージョン 6.3 SP2 で導入されました。これまでの Adabas のリリースでは、SYNP チェックポイントが検出されたときは、常に出口コード 14 で終了していました。

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

処理フロー

graphics/adarec1.png

(UNIX platforms only)
データセット 環境
変数
記憶
媒体
追加情報
プロテクションログ RECPLG ディスク(* 注参照)  

注意:
(*)CLOSE 機能は RAW ディスクセクションのプロテクションログファイルだけに作用します。

graphics/adarec2.png

REGENERATE Function
データセット 環境
変数/
論理名
記憶
媒体
追加情報
コントロールステートメント stdin/
SYS$INPUT
  ユーティリティマニュアル
ADAREC メッセージ stdout/
SYS$OUTPUT
  メッセージおよびコード
拒否データ RECERR ディスク、テープ(* 注参照) ADAREC の出力
プロテクションログ RECPLG ディスク、テープ  

注意:
(*)このシーケンシャルファイルには、名前付きパイプを使用できます(OpenVMS にはない。詳細については、『Adabas Basics』の「ユーティリティの使用」を参照)。

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

チェックポイント

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

機能 ニュークリアスのアクティブ化が必要 ニュークリアスの非アクティブ化が必要 ニュークリアスは不要 記録チェックポイント
         
LIST     X -
REGENERATE X     SYNX

ADAREC 入力データ

データプロテクション情報は、更新レコードのビフォーイメージとアフターイメージという形式で、各 Adabas セッション時にプロテクションログに記録されます。この情報は、更新内容の再生成に必要となります。

制御パラメータ

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

     CLOSE = PLOG-number[(extent-number)]

M    DBID = number

     LIST = keyword

     REGENERATE = {* [,EXCLUDE_FILES =
                  (number[-number] [,number[-number] ] ... ) } |
                  (number[-number] [,number[-number] ] ... )
                  PLOG = number
D                 [,[NO]BI_CHECK]
                  [,BLOCK = ([number][,number])
                       ,CHECKPOINT = ([string][,string])]
D                 [,[NO]ERROR_LOG]
D                 [,ON_ERROR = keyword]

CLOSE

CLOSE = PLOG-number[(extent-number)]

CLOSE 機能は、ディスクセクション内で異常終了したプロテクションログファイルにエンドオブファイルを明示的に書き込みます。この機能を実行してからでないと、このようなプロテクションログファイルを REGENERATE 機能の入力として使用できません。

CLOSE 機能は、AUTORESTART が保留中であるか、または AUTORESTART が実行された後で実行が可能となります。

この機能は、以降の Adabas セッションで他のプロテクションログデータファイルが作成された場合でも引き続き使用できます。

PLOG-number および extent-number は、Adabas プロテクションログ番号と、クローズするプロテクションログファイルのエクステント番号を指定します。これらの番号は ADADEV の LAYOUT 機能で表示されます。

注意:
この機能は、UNIX プラットフォームのみ利用できます。

例:

adarec: db=1
%ADAREC-I-DBON,  database 1 accessed online
adarec: close=93
adarec: 

Protection log 93 - 20-JUL-2005 13:12:54 closed successfully

データベース 1 のプロテクションログ 93 が CLOSE 機能によってクローズされます。

DBID

DBID = number

このパラメータは、使用対象となるデータベースを選択するためのものです。

注意:
ニュークリアスが動作している必要がないプログラム機能でも、コンテナファイルの環境変数/論理名の設定が必要になります。

LIST

[PLOG=number,] LIST = keyword

有効なキーワードは BRIEF、FULL、および RESTART です。BRIEF を指定すると、プロテクションログの番号と作成日が表示されます。FULL を指定すると、チェックポイントやファイルごとの変更の数など、プロテクションログのレコードに関する詳細情報が表示されます。RESTART を指定すると、処理中にチェックポイントが検出されたときに ADAREC が書き込んだ再開位置が表示されます。

注意:
チェックポイントに表示されるタイムスタンプは、チェックポイントが PLOG に含まれていたときに作成されたタイムスタンプです。オフラインのチェックポイントが作成されると、まず、ASSO のチェックポイントブロックにチェックポイントが書き込まれます。次回ニュークリアスを起動したときに、実際のチェックポイント作成日とともにチェックポイントファイルに書き込まれ、現在の日付で PLOG に書き込まれます。これは、ADAREP CHECKPOINT と ADAREC LIST で表示されるオフラインチェックポイントのタイムスタンプが異なることを意味します。

また LIST=FULL 機能を指定した場合には、内部的な整合性が取れているかどうかプロテクションログ構造のチェックも実行されます。構造エラーが検出されると、そのレコードとブロック番号とともにエラータイプを示すメッセージが出力されます。

プロテクションログがディスクセクション内にある場合、LIST を指定する前に PLOG パラメータを設定する必要があります。

adarec: list=brief 
 
Protection log 1 - 26-OCT-2006 11:39:03

PLOG 1 の作成日付が表示されます。

REGENERATE

この機能は、データベース全体またはデータベース内のファイルを再生成するために使用します。

データベースの再生成

REGENERATE = *, PLOG = number
             [,EXCLUDE_FILES = (number[-number][,number[-number]]...)]
             [,[NO]BI_CHECK]
             [,BLOCK = ([number][,number]),
                   CHECKPOINT = ([string][,string])]
             [,[NO]ERROR_LOG]
             [,ON_ERROR = keyword]

REGENERATE 機能のこのオプションは、データベースの再生成を行うためのものです。再生成から特定のファイルを除外したい場合にはファイル除外リストを使用できます。ET ロジックがサポートされています。

REGENERATE 処理中に ADAREC は、ユーティリティ専用モードにデータベースを設定します。SYNP チェックポイントが検出されると処理は終了します。この場合、ADAREC は、代わりの再開位置を計算するためプロテクションログを調査します。その後、この再開位置は、処理を継続する前に実行する必要があるユーティリティ機能のリストとともに表示されます。REGENERATE に対する次回のコールは、自動的にこのポイントに設定されます。計算された再開位置の使用は、"BLOCK=" または "CHECKPOINT=" を指定することで(これらのキーワードに空の値を指定)無効にできます。この手順は、PLOG の最後に到達するまで繰り返されます。ADAREC が終了しても、データベースはユーティリティ専用モードになったままです。REGENERATE がさらに続けてコールされることがあるからです。データベースの再生成が終了したら、ADAOPR コマンド OPTIONS=NOUTILITIES_ONLY を実行すれば、データベースを通常どおりに処理することができます。

[NO]BI_CHECK

このオプションを BI_CHECK に設定すると、ADAREC はデータベース内のデータに対してプロテクションログのビフォーイメージの整合性をチェックします(ISN が使用中か、レコードが存在するか、ビフォーイメージの不一致が存在するかなど)。不一致が見つかった場合、ADAREC は関連情報を含むメッセージを発行し、更新は実行されません。

このオプションを NOBI_CHECK に設定した場合も整合性チェックは実行され、ERROR_LOG が暗黙的に有効になりますが、BI 不整合が見つかると更新が実行され、ERROR_LOG に不一致がレポートされます(後述)。エラーが見つかった場合、各ファイルの最初のエラーのみが表示され、以降のエラーはすべて ERROR_LOG に記録されます。この場合、インデックスが不整合になる可能性がある点に注意してください。

ただし、PLOG がニュークリアスの NOBI オプションで書き込まれている場合、ビフォーイメージは含まれず、BI_CHECK オプションを設定することはできません。

デフォルトは BI_CHECK です。

BLOCK = ([number][,number])

このパラメータは、該当するチェックポイント名を持つプロテクションログファイル内のブロックの番号を指定します。ブロック番号は、ADAREC LIST=FULL から取得できます。

CHECKPOINT = ([string][,string])

このパラメータは、開始および終了チェックポイント名を指定します。チェックポイント名は、ADAREP データベースステータスレポートまたは ADAREC LIST=FULL から取得できます。

プロテクションログファイルの先頭から処理を開始する場合、最初のパラメータを省略する必要があります。

[NO]ERROR_LOG

このオプションを ERROR_LOG に設定すると、NOBI_CHECK オプションを使用したときに検出される BI 不整合の自動ロギングが有効になります。生成されたエラーファイルの内容は、ADAERR ユーティリティを使用して判定できます。レコードの中に印刷できない文字が含まれているため、オペレーティングシステム標準の印刷ユーティリティでエラーファイルを印刷しないでください。詳細については、「ADAERR」を参照してください。

デフォルトは NOERROR_LOG です。

EXCLUDE_FILES = (number[-number][,number[-number]]...)

このパラメータは、データベース全体の再生成時に除外されるファイルを指定するものです。除外された更新はレポートに書き込まれます。

ON_ERROR = keyword

有効なキーワードは ABORT または EXCLUDE です。使用するキーワードによって、ADAREC が処理中に致命的ではないエラー(レスポンスコード 17、ファイルのロード失敗など)を検出したときに実行するアクションが特定されます。データストレージエラーが発生すると(ニュークリアスレスポンスコード 17、49、75、77、113 など)、ABORT を指定している場合は再生成処理が異常終了し、EXCLUDE を指定している場合は問題のファイルを再生成から除外します。

ただし、ファイルのインデックスの更新中にエラーが発生した場合(ニュークリアスレスポンスコード 75、76、77、98、165、166、167、176)、このファイルに対するデータストレージの再生成だけは続行されます。再生成処理が完了すると、このファイルのインデックスは無効としてマークされます。その後に ALL_FIELDS オプションを指定して ADAINV REINVERT 機能を実行する必要があります(詳細については、このマニュアルの ADAINV ユーティリティを参照)。インデックスエラーが発生し、再生成に複数のプロテクションログが含まれる場合は、インデックスを再インバートする前に、すべてのプロテクションログを処理する必要があります。プロテクションログにインデックスエラーが発生するたびにインデックスを再インバートすると、相当な時間とコンピュータリソースを浪費することになります。

デフォルトは ON_ERROR = EXCLUDE です。

PLOG = number

このパラメータは、REGENERATE 機能の入力として使用する Adabas プロテクションログのログ番号を指定します。この番号は、ADAREC で LIST = BRIEF 機能を使用することで見つけることができます。

ファイルの再生成

REGENERATE = (number[-number][,number[-number]]...), PLOG = number
             [,[NO]BI_CHECK]
             [,BLOCK = ([number][,number]),
                   CHECKPOINT = ([string][,string])]
             [,[NO]ERROR_LOG]
             [,ON_ERROR = keyword]

REGENERATE 機能のこのオプションは、指定したファイルまたは指定した範囲のファイルに対して、プロテクションログ内のすべての更新に再適用を行うためのものです。LOB ファイルを指定した場合には無視されますが、基本ファイルをすべて指定していれば、その基本ファイルに割り当てられた LOB ファイルはダンプされます。

再生成の処理中には、ADAREC はファイルをロックして排他的に使用します。プロテクションログの処理中に、SYNP チェックポイントが検出されると、再生成処理は終了します。この場合、ADAREC は、代わりの再開位置を計算するためプロテクションログを調査します。その後、この再開位置は、処理を継続する前に実行する必要があるユーティリティ機能のリストとともに表示されます。REGENERATE に対する次回のコールは、自動的にこのポイントに設定されます。計算された再開位置の使用は、"BLOCK=" または "CHECKPOINT=" を指定することで(これらのキーワードに空の値を指定)無効にできます。この手順は、プロテクションログの最後に到達するまで繰り返されます。

ファイルはロックされたままの状態になります。REGENERATE がさらに続けてコールされる可能性があるからです。ファイルの再生成が終わったら、ADAOPR コマンド UNLOCK でファイルをロック解除する必要があります。

ADAREC の実行中は、次の機能は利用できません。

  • ADAOPR ET_SYNC FEOF = PLOG

  • ADABCK DUMP

  • 関連する ADAREC ユーザーが存在する間のサブユーザーに対する ADAOPR STOP

[NO]BI_CHECK

このオプションを BI_CHECK に設定すると、ADAREC はデータベース内のデータに対してプロテクションログのビフォーイメージの整合性をチェックします(ISN が使用中か、レコードが存在するか、ビフォーイメージの不一致が存在するかなど)。不一致が見つかった場合、ADAREC は関連情報を含むメッセージを発行し、更新は実行されません。

このオプションを NOBI_CHECK に設定した場合も整合性チェックは実行され、ERROR_LOG が暗黙的に有効になりますが、BI 不整合が見つかると更新が実行され、ERROR_LOG に不一致がレポートされます(後述)。エラーが見つかった場合、各ファイルの最初のエラーのみが表示され、以降のエラーはすべて ERROR_LOG に記録されます。この場合、インデックスが不整合になる可能性がある点に注意してください。

NOBI_CHECK は、データの整合性が失われる可能性と引き換えにパフォーマンスを改善します。したがって、ミッションクリティカルなデータベースに NOBI_CHECK を使用することはお勧めしません。

デフォルトは BI_CHECK です。

BLOCK = ([number] [,number])

このパラメータは、対応するチェックポイント名を含むプロテクションログファイルのブロックを指定します。ブロック番号は、ADAREC LIST=FULL から取得できます。

CHECKPOINT = ([string] [,string])

このパラメータは、開始および終了チェックポイント名を指定します。チェックポイント名は、ADAREP データベースステータスレポートから取得できます。

プロテクションログファイルの先頭から処理を開始する場合、最初のパラメータを省略する必要があります。最初のチェックポイント名を指定した場合は、そのチェックポイントが最初のプロテクションログファイルに含まれている必要があります。

最後のプロテクションログファイルの末尾で処理を終了する場合、2 番目のチェックポイント名を省略する必要があります。

[NO]ERROR_LOG

このオプションを ERROR_LOG に設定すると、NOBI_CHECK オプションを使用したときに検出される BI 不整合の自動ロギングが有効になります。生成されたエラーファイルの内容は、ADAERR ユーティリティを使用して判定できます。レコードの中に印刷できない文字が含まれているため、OvenVMS 標準の印刷ユーティリティでエラーファイルを印刷しないでください。詳細については、このマニュアルの ADAERR ユーティリティに関する説明を参照してください。

デフォルトは NOERROR_LOG です。

ON_ERROR = keyword

有効なキーワードは ABORT または EXCLUDE です。使用するキーワードによって、ADAREC が処理中に致命的ではないエラー(レスポンスコード 17、ファイルのロード失敗など)を検出したときに実行するアクションが特定されます。データストレージエラーが発生すると(ニュークリアスレスポンスコード 17、49、75、77、113 など)、ABORT を指定している場合は再生成処理が異常終了し、EXCLUDE を指定している場合は問題のファイルを再生成から除外します。

ただし、ファイルのインデックスの更新中にエラーが発生した場合(ニュークリアスレスポンスコード 75、76、77、98、165、166、167、176)、このファイルに対するデータストレージの再生成だけは続行されます。再生成処理が完了すると、このファイルのインデックスは無効としてマークされます。その後に ALL_FIELDS オプションを指定して ADAINV REINVERT 機能を実行する必要があります(詳細については、このマニュアルの ADAINV ユーティリティを参照)。インデックスエラーが発生し、再生成に複数のプロテクションログが含まれる場合は、インデックスを再インバートする前に、すべてのプロテクションログを処理する必要があります。プロテクションログにインデックスエラーが発生するたびにインデックスを再インバートすると、相当な時間とコンピュータリソースを浪費することになります。

デフォルトは ON_ERROR = EXCLUDE です。

PLOG = number

このパラメータは、REGENERATE 機能の入力として使用する Adabas プロテクションログのログ番号を指定します。この番号は、ADAREC で LIST = BRIEF 機能を使用することで見つけることができます。

例 1

この例では、プロテクションログ 2 を使用してデータベース 2 を再生成します。ファイル 12 を再生成から除外します。

adarec: regenerate=*,plog=2
adarec: exclude_files=12
adarec:
 
Protection log 2 - 26-OCT-2006 11:48:59
 
 
Block     3 - checkpoint SYNC - 11:49:00 - USERID ADANUC <version>
%ADAREC-I-CHKIGN, Checkpoint ignored

The following utility functions were executed in the original session:

Block     4 - checkpoint SYNP - 11:50:02 - USERID ADADBM REFRESH=13 
 
Block     5 - checkpoint SYNX - 11:50:03 - USERID ADADBM RESET=UCB,IDENT=7
 
Block     6 - checkpoint SYNP - 11:50:03 - USERID ADADBM RECOVER 
 
Re-execute all SYNP utility functions starting from block 4.
 
REGENERATE summary
 
 
Calculated RESTART point - BLOCK=6,CHECKPOINT=SYNP

プロテクションログの処理は、ブロック 4 内の SYNP チェックポイントで終了します。しかし、プロテクションログを検索して更新が確認されなくても、処理は算出されたブロック 6 内の再開位置から継続することができます。処理継続前に実行しなければならないユーティリティ機能のリストが ADAREC より表示されます。REGENERATE=* を次回にコールすると、計算された再開位置から自動的に継続します。

adarec: regenerate=*,plog=2
%adarec-I-restartp, calculated restart point - block=6,checkpoint=synp
adarec: exclude_files=12
adarec:
 
Protection log 2 - 26-OCT-2006 11:48:59.86
 
 
Block     6 - checkpoint SYNP - 11:50:03.86 - USERID ADADBM RECOVER 
%ADAREC-I-CHKSTP, starting checkpoint
 
     1 modifications in file  11
     1 modifications EXCLUDED from file  12
 
     4 ET commands issued
 
Block     7 - checkpoint SYNC - 11:52:38.98 - USERID ADANUC SHUTDOWN  
%ADAREC-I-CHKIGN, Checkpoint ignored
 
 
REGENERATE summary
 
 
Protection log 2 processed

プロテクションログの処理は計算された再開位置から継続します。再生成は正常終了します。

例 2

この例では、プロテクションログ 2 を使用してデータベース 2 を再生成します。処理は、プロテクションログのブロック 6 内のチェックポイント SYNP から開始されます。データストレージエラーが発生すると、該当ファイルは再生成から除外されます。インデックスエラーが発生すると、該当ファイルのインデックスは再生成から除外され、無効なものとして扱われます。

adarec: regenerate=*,plog=2,block=6,checkpoint=synp
adarec: on_error=exclude
adarec:
 
Protection log 2 - 26-OCT-2006 11:48:59.86
 
%ADAREC-W-UTIENA, OPTIONS=UTILITIES enabled in nucleus by ADAREC
%ADAREC-W-RECUPD, Updates performed between Nucleus and REGENERATE'S startup
%ADAREC-W-RECCMD, 1 N1  command(s)
 
Block     6 - checkpoint SYNP - 11:50:03.86 - USERID ADADBM RECOVER 
%ADAREC-I-CHKSTP, starting checkpoint
 
     1 modifications in file  11
 
     3 ET commands issued
 
%ADAREC-E-ISNINUSE, ISN 774 in use in file  12 
%ADAREC-I-PLOGRB, from record 14 in block 7 in PLOG 2
%ADAREC-I-UPDEXC, ALL following updates in file  12 will be EXCLUDED
 
     1 modifications EXCLUDED from file  12
 
     1 ET command issued
 
Block     7 - checkpoint SYNC - 11:52:38.98 - USERID ADANUC SHUTDOWN  
%ADAREC-I-CHKIGN, Checkpoint ignored
 
 
REGENERATE summary
 
 
Protection log 2 processed

ファイル 12 において ISN の矛盾が発生し、このファイルに対する後続の更新はすべて除外されました。このエラーの原因を調査しなければなりません。ただし、そのニュークリアスは OPTIONS=UTILITIES_ONLY の指定なしで起動され、再生成が開始される前に N1 コマンドが 1 回発行されています。

プロテクションログは最後まで処理され、終了システムメッセージは致命的なエラーを示すためにのみ使用されています。

例 3

この例は、データストレージまたはインデックスエラーが発生した際に処理が異常終了するという点以外はこの前の例と同じものです。

adarec: regenerate=*,plog=2,block=6,checkpoint=synp
adarec: on_error=abort 
adarec:
 
Protection log 2 - 26-OCT-2006 11:48:59.86
 
%ADAREC-W-UTIENA, OPTIONS=UTILITIES enabled in nucleus by ADAREC
%ADAREC-W-RECUPD, Updates performed between Nucleus and REGENERATE'S startup
%ADAREC-W-RECCMD, 1 N1  command(s)
 
Block     6 - checkpoint SYNP - 11:50:03.86 - USERID ADADBM RECOVER 
%ADAREC-I-CHKSTP, starting checkpoint
 
     1 modifications in file  11
 
     3 ET commands issued
 
%ADAREC-E-ISNINUSE, ISN 774 in use in file  12 
%ADAREC-I-PLOGRB, from record 14 in block 7 in PLOG 2

ISN の競合がファイル 12 で発生しました。以降の処理は異常終了しました。

例 4

この例では、プロテクションログ 3 を使用してデータベース 2 を再生成します。プロテクションログ内のビフォーイメージがデータベース内のデータに対してチェックされ、不一致内容が端末画面上に表示されます。

adarec: regenerate=*,plog=3
adarec:
 
Protection log 3 - 26-OCT-2006 12:10:25.12
 
%ADAREC-W-UTIENA, OPTIONS=UTILITIES enabled in nucleus by ADAREC
 
Block     1 - checkpoint SYNC - 12:10:25.12 - USERID ADANUC 3.2/0 PL 0  
%ADAREC-I-CHKIGN, Checkpoint ignored
 
     1 ET command issued
 
%ADAREC-E-RECMIS, Before image mismatch for ISN 3 in file  11 
%ADAREC-I-PLOGRB, from record 7 in block 2 in PLOG 3
%ADAREC-I-UPDEXC, ALL following updates in file  11 will be EXCLUDED
 
     1 modifications EXCLUDED from file  11
     1 modifications in file  12
 
     3 ET commands issued
 
Block     2 - checkpoint SYNC - 12:11:44.30 - USERID ADANUC SHUTDOWN  
%ADAREC-I-CHKIGN, Checkpoint ignored
 
 
REGENERATE summary
 
 
Protection log 3 processed

処理時に 1 つのビフォーイメージの不一致が発生しました。結果として、1 つの更新内容がファイル 11 から除外されます。

ファイルの再生成後、同じ例を今度はビフォーイメージの整合性チェックなしで、また BI エラーロギングを可能にして実行できます。

プロテクションログは最後まで処理され、終了システムメッセージは致命的なエラーを示すためにのみ使用されています。

adarec: regenerate=*,plog=3,nobi_check
adarec:
 
Protection log 3 - 26-OCT-2006 12:10:25.12
 
%ADAREC-W-UTIENA, OPTIONS=UTILITIES enabled in nucleus by ADAREC
 
Block     1 - checkpoint SYNC - 12:10:25.12 - USERID ADANUC 3.2/0 PL 0  
%ADAREC-I-CHKIGN, Checkpoint ignored
 
%ADAREC-W-RECMIS, Before image mismatch for ISN 3 in file  11 
%ADAREC-I-PLOGRB, from record 7 in block 2 in PLOG 3
 
     1 modifications in file  11
     1 modifications in file  12
 
     4 ET commands issued
 
     1 BI_CHECK error in file  11
 
Block     2 - checkpoint SYNC - 12:11:44.30 - USERID ADANUC SHUTDOWN  
%ADAREC-I-CHKIGN, Checkpoint ignored
 
 
REGENERATE summary
 
     1 BI_CHECK error in file  11
 
 
Protection log 3 processed

処理の際に、1 つの BI_CHECK エラーが発生しました。

プロテクションログは最後まで処理され、終了システムメッセージは致命的なエラーを示すためにのみ使用されています。

エラーの発生源は、ADAERR ユーティリティで表示できるように、エラーファイルに書き出されます。最初に検出されたエラーが記録され、エラーファイル内にも書き出されます。このエラーの後の後続エラーは、ERROR_LOG に書き出されます。

次のエラーファイルが作成されています。

%ADAERR-E-RECMIS, Before image mismatch for ISN 3 in file  11 
%ADAERR-I-PLOGRB, from record 7 in block 2 in PLOG 3

例 5

この例では、プロテクションログ 3 を使用してデータベース 2 を再生成します。

adarec: regenerate=*,plog=3
adarec:
 
Protection log 3 - 26-OCT-2006 12:10:25.12
 
%ADAREC-W-UTIENA, OPTIONS=UTILITIES enabled in nucleus by ADAREC
 
Block     1 - checkpoint SYNC - 12:10:25.12 - USERID ADANUC 3.2/0 PL 0  
%ADAREC-I-CHKIGN, Checkpoint ignored
 
%ADAREC-E-ERRIUP, Error response 165 during index update
%ADAREC-E-Adabas_165, * Invalid descriptor name in DVT
%ADAREC-I-DESNAM, Descriptor name XA
%ADAREC-I-ISNFILE, from ISN 3 in file  11
%ADAREC-I-PLOGRB, from record 7 in block 2 in PLOG 3
%ADAREC-I-REINVERT, REINVERT all descriptors to re-establish INDEX
%ADAREC-I-REGDAT, Regenerating ONLY data-storage for file  11
 
     1 modifications in file  11
     1 modifications in file  12
 
     4 ET commands issued
 
Block     2 - checkpoint SYNC - 12:11:44.30 - USERID ADANUC SHUTDOWN  
%ADAREC-I-CHKIGN, Checkpoint ignored
 
 
 REGENERATE summary
 
 
Protection log 3 processed

処理の際に無効なディスクリプタ名が検出されました。その結果、ファイル 11 のデータストレージのみが再生成されました。インデックスを再構築するには、全ディスクリプタを再インバートする必要があります。

プロテクションログは最後まで処理され、終了システムメッセージは致命的なエラーを示すためにのみ使用されています。

インデックスエラーが発生し、再生成に複数のプロテクションログが含まれる場合は、インデックスを再インバートする前に、すべてのプロテクションログを処理する必要があります。プロテクションログにインデックスエラーが発生するたびにインデックスを再インバートすると、相当な時間とコンピュータリソースを浪費することになります。

例 6

この例では、プロテクションログ 3 の再生成処理がインデックスエラーになった後で、プロテクションログ 4 を使用して、データベース 2 を再生成します。

adarec: regenerate=*,plog=4
adarec:
 
Protection log 4 - 26-OCT-2006 12:12:00.15
 
 
Block     1 - checkpoint SYNC - 12:12:00.15 - USERID ADANUC <version>
%ADAREC-I-CHKIGN, Checkpoint ignored
 
%ADAREC-E-FCBNAC, file  11's index not accessible
%ADAREC-I-REGDAT, Regenerating ONLY data-storage for file  11
 
     1 modifications in file  11
     1 modifications in file  12
 
     4 ET commands issued
 
Block     2 - checkpoint SYNC - 12:12:19.35 - USERID ADANUC SHUTDOWN  
%ADAREC-I-CHKIGN, Checkpoint ignored
 
 
REGENERATE summary
 
 
Protection log 4 processed

プロテクションログ 3(上記例 5 を参照)の処理時にインデックスエラーが発生したことは、ファイル 11 のインデックスがもうアクセス不可能であるということを意味します。ファイル 11 はデータストレージだけが再生成されますが、ファイル 12 はデータストレージもインデックスも再生成されます。

プロテクションログは最後まで処理され、終了システムメッセージは致命的なエラーを示すためにのみ使用されています。

ADAREC の再スタートに関する考慮

ADAREC の実行が中断された結果、UCB エントリがなくなった場合には、ADAREC を最初からやり直す必要があります。修正がすでに行われているので、データベースまたはファイルを対象に RESTORE を実行してから、ADAREC を再スタートする必要があります。ただし、UCB エントリが 1 つも存在しない場合、データベースは修正されておらず、ADAREC を再スタートすることができます。

ADAREC(RESTORE/RECOVER)が異常終了した場合のデータベースの状態は、整合性が維持されることはわかっていますが、実際にどうなるかはっきりとはわかりません。ADAREC は、どれがリカバリ済みのトランザクションなのかを判断できません。そのため、RESTORE オペレーションを繰り返して、すべてを確実にリカバリするために最初から ADAREC をやり直す必要があります。

最初の更新が実行されると、started チェックポイントが ADAREC によってチェックポイントファイルに記録されます。

   SYNX   22-MAR-2007 16:49:46       192   ADAREC REG STARTED