データベースのログ・ファイルに記録されたトランザクションを適用することによって、 データベースを回復させます。 データベースまたは表スペースのバックアップが復元された後、 あるいはすべての表スペースが媒体エラーのためにデータベースによって オフラインにされた場合に呼び出されます。 データベースをロールフォワード回復で回復できるのは、 それが回復可能な状態にある (すなわち、 logretain または userexit、 あるいはその両方のデータベース構成パラメーターがオンに設定されている) ときだけです。
効力範囲
マルチノード環境では、このコマンドはカタログ・ノードからしか発行できません。 時間を指定するデータベースまたは表スペースのロールフォワード・コマンドは、 db2nodes.cfg ファイルにリストされているすべてのノードに影響を与えます。 ログの終わりを指定するデータベースまたは表スペースのロールフォワード・コマンドは、 指定されたノードに影響を与えます。 ノードが指定されない場合、コマンドは、 db2nodes.cfg ファイルにリストされているすべてのノードに影響を与えます。 特定のノードでロールフォワードが必要とされない場合には、そのノードは無視されます。
許可
以下のどれかが必要です。
必須接続
なし。 このコマンドは、データベース接続を確立します。
コマンド構文
>>-ROLLFORWARD----+-DATABASE-+---database-alias-----------------> '-DB-------' >-----+---------------------------------------+-----------------> '-USER--username--+------------------+--' '-USING--password--' >-----+----------------------------------------------------------------+> +-TO--+-isotime--+--------------+-----------+---+--------------+-+ | | '-ON ALL NODES-' | +-AND COMPLETE-+ | | '-END OF LOGS--+--------------------+-' '-AND STOP-----' | | '-| On Node clause |-' | '--+-COMPLETE------+---+--------------------+--------------------' +-STOP----------+ '-| On Node clause |-' +-CANCEL--------+ '-QUERY STATUS--' >----+---------------------------------------------------------------+> '-TABLESPACE----+-ONLINE-------------------------------------+--' | .-,------------------. | | V | | '-(-----tablespace-name---+---)--+---------+-' '-ONLINE--' >-----+---------------------------------------------------------------------------+> '-OVERFLOW LOG PATH--(--log-directory--+-----------------------------+---)--' '-,--| Log Overflow clause |--' >-----+-------------------------------------------------------------+> '-RECOVER DROPPED TABLE--drop-table-id--TO--export-directory--' >-------------------------------------------------------------->< On Node clause |---ON--+-| Node List clause |-------------------------+--------| '-ALL NODES--+-------------------------------+-' '-EXCEPT--| Node List clause |--' Node List clause .-,-------------------------------------. V | |---+-NODE---+--(-------node-number1--+-------------------+--+--> '-NODES--' '-TO--node-number2--' >----)----------------------------------------------------------| Log Overflow clause .-,---------------------------------------. V | |------log-directory--ON NODE--node-number1---+-----------------|
コマンド・パラメーター
この値は、バインドされた日時を識別する 7 つの部分の文字ストリングからなる、 タイム・スタンプとして指定されます。 書式は、yyyy-mm-dd-hh.mm.ss.nnnnnn (年、月、日、時、分、秒、マイクロ秒) の協定世界時 (CUT) です。
環境変数 TZ は、CUT とローカル時間との差を表示します。 たとえば、TZ 値が EST5EDT の場合、 ローカル時間帯が EST (東部標準時) であり、この時間帯と CUT との差が 5 時間で、 夏時間の採用があることを示しています。 夏時間採用時には、5 時間の差が 4 時間となり、CUT = 現在時 + 4 となります。
区分データベース環境では、ON ALL NODES が指定されると、 ロールフォワード回復がすべてのノードに対して行われます。
注: | 表スペースをある時点までロールフォワードすると、 表スペースはバックアップ保留状態に置かれます。 |
注: | このオプションは十分注意して使用してください。 |
注: | TO、STOP、COMPLETE、および CANCEL 句が省略されると、QUERY STATUS が省略時値になります。
TO 句、STOP 句、または COMPLETE 句のいずれかが指定された場合は、 コマンドが正常に実行されれば、この情報が表示されます。 |
単一ノード環境では、相対オーバーフロー・ログ・パスの指定もできますが、 マルチノード環境では、パスは完全に修飾されていなければなりません。
例
例 1
ROLLFORWARD コマンドでは、それぞれをキーワード and で区切ることによって、 一度に複数の操作を指定することができます。 たとえば、ログの終わりまでロールフォワードし、完了する場合、 コマンドを別々に指定すると、次のようになります。
db2 rollforward db sample to end of logs db2 rollforward db sample complete
これらは次のように結合することができます。
db2 rollforward db sample to end of logs and complete
例 2
ログの終わりまでロールフォワードします (2 つの表スペースが復元されています)。
db2 rollforward db sample to end of logs
注: | ログの終わりまで表スペースをロールフォワードする場合、 AND STOP または AND COMPLETE を使用する必要はありません。 表スペース名は必須ではありません。 指定しない場合には、 ロールフォワード回復を必要としているすべての表スペースが組み込まれます。 これらの表スペースの一部のみをロールフォワードする場合は、 それらの名前を指定しなければなりません。 |
例 3
3 つの表スペースが復元された後、1 つをログの終わりまでロールフォワードし、 他の 2 つをある時点までロールフォワードします (両方ともオンラインで行われます)。
db2 rollforward db sample to end of logs tablespace(TBS1) online db2 rollforward db sample to 1998-04-03-14.21.56.245378 and stop tablespace(TBS2, TBS3) online
例 4
データベースを復元した後、 OVERFLOW LOG PATH でユーザー出口がアーカイブ・ログを保管するディレクトリーを指定して、 ある時点までロールフォワードします。
db2 rollforward db sample to 1998-04-03-14.21.56.245378 and stop overflow log path (/logs)
例 5 (MPP)
0、1、および 2 の 3 つのノードがあります。 表スペース TBS1 はすべてのノードで定義されており、 表スペース TBS2 はノード 0 および 2 で定義されています。 ノード 1 でデータベースを復元し、ノード 0 および 2 で TBS1 を復元した後、 ノード 1 でデータベースをロールフォワードします。
db2 rollforward db sample to end of logs and stop
これにより、警告 SQL1271 (『データベースは回復されましたが、 ノード 0 および 2 で 1 つまたは複数の表スペースがオフラインになっています。』) が戻されます。
db2 rollforward db sample to end of logs
これにより、ノード 0 および 2 で TBS1 がロールフォワードされます。 この場合、文節 TABLESPACE(TBS1) は任意指定です。
例 6 (MPP)
ノード 0 および 2 でのみ表スペース TBS1 を復元した後、 ノード 0 および 2 で TBS1 をロールフォワードします。
db2 rollforward db sample to end of logs
ノード 1 は無視されます。
db2 rollforward db sample to end of logs tablespace(TBS1)
ノード 1 で TBS1 がロールフォワード可能な状態になっていないため、これは失敗します。 SQL4906N が報告されます。
db2 rollforward db sample to end of logs on nodes (0, 2) tablespace(TBS1)
これは正常に完了します。
db2 rollforward db sample to 1998-04-03-14.21.56.245378 and stop tablespace(TBS1)
ノード 1 で TBS1 がロールフォワード可能な状態になっていないため、これは失敗します。 すべての部分は一緒にロールフォワードされなければなりません。
注: | 表スペースをある時点までロールフォワードする場合、ノード文節は受け入れられません。 |
ノード 1 で TBS1 を復元した後
db2 rollforward db sample to 1998-04-03-14.21.56.245378 and stop tablespace(TBS1)
これは正常に完了します。
例 7 (MPP)
すべてのノードで表スペースを回復した後、 PIT2 までロールフォワードしますが、AND STOP は指定しません。 ROLLFORWARD コマンドはまだ進行中です。 それを取り消し、PIT1 までロールフォワードします。
db2 rollforward db sample to pit2 tablespace(TBS1) db2 rollforward db sample cancel tablespace(TBS1) ** restore TBS1 on all nodes ** db2 rollforward db sample to pit1 tablespace(TBS1) db2 rollforward db sample stop tablespace(TBS1)
例 8 (MPP)
db2nodes.cfg ファイルにリスト表示されている 8 個のノード (3 〜 10) に存在する表スペースをロールフォワードします。
db2 rollforward database dwtest to end of logs tablespace (tssprodt)
ログの終わり (ある時点ではなく) までのこの操作は正常に完了します。 表スペースが存在するノードは指定する必要がありません。 ユーティリティーは、省略時値として db2nodes.cfg ファイルを使用します。
例 9 (MPP)
(ノード 6 上の) 1 つのノード・グループに存在する 6 個の小さな表スペースをロールフォワードします。
db2 rollforward database dwtest to end of logs on node (6) tablespace(tsstore, tssbuyer, tsstime, tsswhse, tsslscat, tssvendor)
ログの終わり (ある時点ではなく) までのこの操作は正常に完了します。
使用上の注意
データベース・マネージャーは、アーカイブおよびアクティブ・ログ・ファイルに保管されている情報を使用して、 最終バックアップ以後にデータベースで実行されたトランザクションを再作成します。
ROLLFORWARD DATABASE が呼び出される際、 データベースがロールフォワード保留状態であると、 データベースはロールフォワードされます。 データベースのロールフォワードが成功すると、 異常状態が生じて 1 つまたは複数の表スペースがオフラインとならない限り、 表スペースは通常の状態に戻されます。
データベースがロールフォワード保留状態ではなく、時点が指定されない場合は、 ロールフォワード進行状態にあるすべての表スペースがログの終わりまでロールフォワードされます。 ロールフォワード進行状態の表スペースがない場合は、 ロールフォワード保留状態にあるすべての表スペースがログの終わりまでロールフォワードされます。
表スペース名を指定すると、表スペースのサブセットに対してロールフォワード処理を行うことができます。
表スペースをある時点までロールフォワードする場合、 表スペースのサブセットを指定しなければなりません。 指定された表スペースだけがロールフォワードされます。 各表スペースはロールフォワード保留状態でなければなりません。 あるいは、表スペースのロールフォワードがすでに進行中の場合、 表スペースはロールフォワード進行状態でなければなりません。
ロールフォワード回復処理のために既存のデータベースを使用可能にする場合には、 1 次ログ・ファイルの数を 1 次ログ・ファイルと 2 次ログ・ファイルの合計数 +1 に変更してください。 詳しい情報については、ロールフォワード回復処理に使用可能なデータベースにおいて、 LONG VARCHAR フィールドおよび LOB データのためにログに記録されます。
データベースのロールフォワードには、テープ装置を使用したロード回復が必要とされる場合があります。 別のテープを要求されたときは、次のうちのいずれか 1 つで応答することができます。
データベースのロールフォワードには、 この解説書に記述されたもの以外の前提条件と制限が含まれる可能性があります。 より詳細な情報については、管理の手引き を参照してください。
以下も参照