ROLLFORWARD DATABASE コマンド

ROLLFORWARD DATABASEコマンドは、データベース・ログ・ファイルに記録されているトランザクションを適用することにより、データベースを回復します。 ROLLFORWARD DATABASE コマンドは、データベースまたは表スペースのバックアップ・イメージがリストアされた後、またはメディア・エラーのためにデータベースによってオフラインにされた表スペースがある場合に実行できます。

ロールフォワード・リカバリーでデータベースをリカバリーするには、データベースがリカバリー可能でなければなりません (つまり、 logarchmeth1 または logarchmeth2 データベース構成パラメーターが OFF以外の値に設定されていなければなりません)。

範囲

パーティション・データベース環境では、このコマンドはカタログ・パーティションからのみ開始できますが、各パーティションはロールフォワード操作に参加します。 指定された時点へのデータベースまたは表スペースのロールフォワード操作は、db2nodes.cfgファイルにリストされるすべてのデータベース・パーティションに影響します。 ログの末尾までのデータベースまたは表スペースのロールフォワード操作は、指定されたデータベース・パーティションに影響します。 データベースパーティションが指定されていない場合、db2nodes.cfgファイルにリストされるすべてのデータベースパーティションに影響します。 特定のパーティションでロールフォワードリカバリが必要ない場合、そのパーティションは無視されます。

Db2® pureScale® 環境では、このコマンドは任意の メンバーから発行でき、他のメンバーがオンラインになっている間にオンライン表スペース・レベルのロールフォワード操作を実行できます。 ユーザーがデータベース・パーティションのサブセットを介してロールフォワードを選択できるパーティション・データベース環境とは異なり、 Db2 pureScale 環境では、すべての メンバー からのログが自動的に適用されます。

あるメンバーで障害が起こったときに、それに対してロールフォワード操作が進行中である場合には、ROLLFORWARD コマンドをどのメンバーからでも再発行することができます。 オリジナルのメンバーで障害が起こったときに中断した時点から、ロールフォワードが再開されます。

パーティション表の場合は、関連表スペースも同じポイント・イン・タイムまでロールフォワードしなければなりません。 この要件は、表のデータ・パーティションが含まれている表スペースに適用されます。 ある 1 つの表スペースにパーティション表の一部が含まれている場合も、ログの末尾までのロールフォワードは可能です。

別の Db2 リリース・バージョンで作成されたログ・ファイルを使用してロールフォワードすることはできません。 この制限は、新しい Db2 データベース・リリース・バージョンにアップグレードする際の重要な考慮事項です。

許可

以下の権限のいずれか。
  • SYSADM
  • SYSCTRL
  • SYSMAINT

必要な接続

None. このコマンドにより、排他的データベース接続が確立されます。

コマンド構文

Read syntax diagramSkip visual syntax diagramROLLFORWARD DATABASEDB database-aliasUSERusernameUSINGpasswordTOisotimeON ALL DBPARTITIONNUMSUSING UTC TIMEUSING LOCAL TIMEEND OF BACKUPON ALL DBPARTITIONNUMSEND OF LOGSOn Database Partition clauseAND COMPLETEAND STOPCOMPLETESTOPCANCELQUERY STATUSUSING UTC TIMEUSING LOCAL TIMEOn Database Partition clause TABLESPACEONLINE(,tablespace-name)ONLINE OVERFLOW LOG PATH(log-directory,Log Overflow clause)NORETRIEVERECOVER DROPPED TABLEdrop-table-idTOexport-directory
On Database Partition clause
Read syntax diagramSkip visual syntax diagramON ALL DBPARTITIONNUMSEXCEPTDatabase Partition List clauseDatabase Partition List clause
Database Partition List clause
Read syntax diagramSkip visual syntax diagramDBPARTITIONNUMDBPARTITIONNUMS(,db-partition-number1TOdb-partition-number2)
Log Overflow clause
Read syntax diagramSkip visual syntax diagram,log-directoryON DBPARTITIONNUMdb-partition-number1

コマンド・パラメーター

DATABASE database-alias
ロールフォワード・リカバリーされるデータベースの別名。
USER username
データベースをロールフォワード・リカバリーする際に使われるユーザー名。
USING password
ユーザー名の認証に使用されるパスワード。 パスワードを省略すると、パスワードの入力を求めるプロンプトが出されます。
TO
isotime
コミットされたすべてのトランザクションがロールフォワードされる時点(その時点で正確にコミットされたトランザクション、または前にコミットされたすべてのトランザクションを含む)。 ポイント・イン・タイムへのロールフォワード操作は、ログ・ファイル内により大きいタイム・スタンプ値を持つトランザクションが存在する場合にのみ、成功メッセージを返します。 それより大きいタイム・スタンプのトランザクションがない場合であっても、 COMPLETE オプションを指定したロールフォワード操作を実行できます。

この値は、タイム・スタンプ (日付と時刻の組み合わせを識別する 7つの部分からなる文字列) として指定されます。 形式は yyyy-mm-dd-hh.mm.ss (年、月、日、時、分、秒) で、協定世界時 (UTC、旧称 GMT) に表されます。 UTCは、同じタイムスタンプが異なるログに関連付けられていないことを確認するのに役立ちます(たとえば、夏時間に関連時間の変更のため)。 バックアップ・イメージ内のタイム・スタンプは、バックアップ操作が開始された現地時間に基づいています。 CURRENT タイム・ゾーン特殊レジスターは、アプリケーション・サーバーでの UTC と現地時間の差を指定します。 この差は、時刻期間 (最初の 2 桁が時間数を表し、次の 2 桁が分数を表し、最後の 2 桁が秒数を表す 10 進数) によって表されます。 ローカル時刻から CURRENT TIMEZONE を減算すると、ローカル時刻を UTC に変換できます。

USING UTC TIME
UTC 時間として指定されたポイント・イン・タイムまでロールフォワードできます。 このパラメーターはデフォルト・オプションです。
USING LOCAL TIME
UTC 時間ではなくサーバーの現地時間として指定されたポイント・イン・タイムにロールフォワードすることができます。
注:
  1. ロールフォワード操作に現地時間を指定すると、返されるすべてのメッセージも現地時間になります。 すべての時刻はサーバー上で変換されます。パーティション・データベース環境では、カタログ・データベース・パーティションで変換されます。
  2. タイム・スタンプ・ストリングは、サーバー上で UTC に変換されるため、この時刻はクライアントではなく、サーバーのタイム・ゾーンのローカル時刻になります。 クライアントがあるタイム・ゾーンにあり、サーバーが別のタイム・ゾーンにある場合は、サーバーの現地時間を使用する必要があります。
  3. 夏時間のためにタイムスタンプ文字列が時計の時刻変更に近い場合は、停止時刻が時計変更の前か後かを確認し、正しく指定することが重要です。
  4. USING LOCAL TIME 節を指定できない後続の ROLLFORWARD コマンドには、このオプションが指定されている場合に現地時間で返されるすべてのメッセージが含まれます。
  5. USING LOCAL TIMEまたはUSING UTC TIME(以前はGMT時間と呼ばれた)を正しく選択することが重要です。 指定されない場合、デフォルトはUSING UTC TIMEになります。 選択に誤りがあると、ロールフォワード操作が予想とは異なる時点に到達し、その時点以降にログが切り捨てられる可能性があります。 ローカルタイムスタンプをUTCタイムスタンプと間違えると、必要なログが望ましくない形で切り捨てられ、誤った時刻より後の時点へのそれ以上のロールフォワード操作が妨げられる可能性があります。
  6. データベースのリカバリー時に有効なタイム・スタンプを指定してください。 有効なタイム・スタンプは、パーティション・データベース・システムで最新のバックアップが完了した時刻になります。
  7. ROLLFORWARD DATABASE コマンドを複数回発行するとき、 2 回目以降の各コマンドで指定するタイム・スタンプは、その直前のコマンドで指定したタイム・スタンプより大きくする必要があります。
END OF LOGS
データベース構成パラメーター logpath にリストされるすべてのオンライン・アーカイブ・ログ・ファイルからのすべてのコミットトランザクションが適用されることを指定します。

END OF LOGS ロールフォワード操作が試行された場合、ポイント・イン・タイム (PIT) ロールフォワード操作に切り替えられません。 前の END OF LOGS ロールフォワード操作の進行中に PIT にロールフォワードするには、リストアを再実行してから rollforward コマンドを実行する必要があります。

END OF BACKUP
パーティション・データベース内のすべてのパーティション、または Db2 pureScale 環境内のすべての メンバー最小リカバリー時間にロールフォワードすることを指定します。 例については、 こちら を参照してください。
ALL DBPARTITIONNUMS | ON ALL DBPARTITIONNUMS
db2nodes.cfgファイルに指定されたすべてのデータベースパーティションでトランザクションがロールフォワードされることを指定します。 これは、データベース・パーティション節が指定されていない場合のデフォルトです。
EXCEPT
データベースパーティションリストで指定されたものを除き、db2nodes.cfgファイルに指定されるすべてのデータベースパーティションでトランザクションがロールフォワードされることを指定します。
ON DBPARTITIONNUM | ON DBPARTITIONNUMS
データベース・パーティションのセットでデータベースをロールフォワードします。
db-partition-number1
データベース・パーティション・リスト内のデータベース・パーティション番号を指定します。
db-partition-number2
2 番目のデータベース・パーティション番号を指定し、 db-partition-number1 から db-partition-number2 までのすべてのデータベース・パーティションがデータベース・パーティション・リストに含まれるようにします。
COMPLETE | STOP
ログ・レコードのロールフォワードを停止し、未完了トランザクションをロールバックし、データベースのロールフォワード・ペンディング状態をオフにすることによって、ロールフォワード・リカバリー処理を完了します。 これによって、ロールフォワードされているデータベースまたは表スペースにアクセスできるようになります。 これらのキーワードは同等です。いずれかを指定し、両方は指定しないでください。 キーワードANDを使うと、一度に複数の操作を指定できます。例えば、db2 rollforward db sample to end of logs and complete。 ある時点まで表スペースをロールフォワードする場合、この表スペースはバックアップ・ペンディング状態になります。
CANCEL
ロールフォワード・リカバリー操作をキャンセルします。 これは、順方向リカバリーが開始されたデータベースまたはすべてのデータベース・パーティション上の 1 つ以上の表スペースを、リストア・ペンディング状態にします。
  • データベース のロールフォワード操作が進行中ではない場合 (つまり、データベースがロールフォワード・ペンディング状態の場合)、このオプションはデータベースをリストア・ペンディング状態にします。
  • 表スペース のロールフォワード操作が進行中ではない場合 (つまり、表スペースがロールフォワード・ペンディング状態の場合)、表スペースのリストが指定されている必要があります。 リスト内のすべての表スペースが、リストア・ペンディング状態にされます。
  • 表スペースのロールフォワード操作が進行中 の場合 (つまり、少なくとも 1 つの表スペースがロールフォワード進行中状態にある)、ロールフォワード進行中状態のすべての表スペースは、リストア・ペンディング状態にされます。 表スペースのリストが指定されている場合、これにはロールフォワード進行中状態であるすべての表スペースが含まれていなければなりません。 リスト内のすべての表スペースはリストア・ペンディング状態にされます。
  • ある時点までロールフォワードしている場合、渡された表スペース名は無視され、ロールフォワード進行中状態であるすべての表スペースがリストア・ペンディング状態にされます。
  • 表スペース・リストを使用してログの末尾までロールフォワードしている場合は、リストにある表スペースのみがリストア・ペンディング状態にされます。
このオプションは、実際に実行中の ロールフォワード操作をキャンセルするために使用することはできません。 このオプションは、進行中であってもその時点では実際には実行されていないロールフォワード操作をキャンセルするためにのみ使用できます。 ロールフォワード操作が進行中であっても実行されていない場合とは、次のような場合です。
  • 異常終了した。
  • STOP オプションが指定されていない。
  • エラーによって失敗した。 リカバリー不能なロード操作によるロールフォワードなどの一部のエラーにより、表スペースがリストア・ペンディング状態にされることがあります。

このオプションを使用するときは注意してください。このオプションは、一部の表スペースがロールフォワード・ペンディング状態またはリストア・ペンディング状態にされたために、進行中のロールフォワード操作を完了できない場合にのみ使用するようにしてください。 不明確な場合は、LIST TABLESPACES コマンドを使用して、ロールフォワード進行中状態またはロールフォワード・ペンディング状態にある表スペースを確認します。

QUERY STATUS
データベース・マネージャーが処理したログ・ファイル、必要な次のアーカイブ・ファイル、およびロールフォワード処理が開始してから最後にコミットされたトランザクションのタイム・スタンプ (UTC) をリストします。 パーティション・データベース環境および Db2 pureScale 環境では、この状況情報が各データベース・パーティションまたは メンバーごとに戻されます。 戻される情報には、次のフィールドが含まれます。
Member number
メンバー番号またはデータベース・パーティション番号。 単一パーティション環境では、これは常に 0 です。
Rollforward status
状態は、データベースまたは表スペースのロールフォワード・ペンディング、 データベースまたは表スペースのロールフォワード進行中、データベースまたは表スペースのロールフォワード処理停止、または非ペンディングのいずれかとなります。
Next log file to be read
次に必要なログ・ファイルの名前が含まれるストリング。 パーティション・データベース環境で、ロールフォワード・ユーティリティーに障害が起こり、 ログ・ファイルの欠落を示す戻りコード、またはログ情報の不一致が生じたことを示す戻りコードが戻されたとき、この情報を使用します。
Log files processed
これ以上リカバリーに必要なく、処理済みのログ・ファイルの名前から成るストリング。 つまり、ロールフォワード・リカバリー操作を続行するために追加のログ・ファイルを提供する必要がある場合、これらのログ・ファイルをログ・パスから削除できます。 このフィールドは、表スペースのロールフォワード・リカバリー操作の場合には更新されません。
注: 「処理されたログ・ファイル」「読み取られる次のログ・ファイル」の間にギャップが生じることがあります。 これは、処理中のトランザクションが存在するためです。その場合、最も古い処理中のトランザクション以降のログ・ファイルが次のラウンドのロールフォワードで引き続き処理される必要があり、そうしたログ・ファイルはログ・パスから削除すべきではありません。
Last committed transaction
ISO 形式 (yyyy-mm-dd-hh.mm.ss) のタイム・スタンプを含む文字列。接尾部として「UTC」または「Local」が付きます ( USING LOCAL TIMEを参照)。 このタイム・スタンプは、ロールフォワード・リカバリーの完了後に、最後にコミットされたトランザクションのタイム・スタンプです。 このタイム・スタンプは、データベースに適用されます。 表スペースのロールフォワード・リカバリーの場合、これはデータベースにコミットされた最後のトランザクションのタイム・スタンプになります。

QUERY STATUS は、TOSTOPCOMPLETE、または CANCEL句を省略した場合のデフォルト値です。 TOSTOP、または COMPLETE が指定された場合、コマンドが正常に完了すると状況情報が表示されます。 個々の表スペースを指定する場合は、それらの表スペースは無視されます。状況要求は、指定された表スペースだけに適用されるものではないからです。

TABLESPACE
このキーワードは、表スペース・レベルのロールフォワード・リカバリーに対して指定されます。
tablespace-name
ポイント・イン・タイムへの表スペース・レベルのロールフォワード・リカバリーに必須です。 これにより、ログの最後までのロールフォワード・リカバリーに対して表スペースのサブセットを指定できます。 パーティション・データベース環境では、リストの各表スペースがロールフォワードされている各データベース・パーティションに存在している必要はありません。 もし表スペースが存在している 場合、その表スペースは適正な状態になければなりません。

パーティション表の場合、パーティション表の一部が含まれた表スペースの特定時点ロールフォワードでは、その表がある他のすべての表スペースも同じ時点までロールフォワードする必要があります。 索引パーティションが含まれている表スペースは、パーティション表の部分リストに組み込まれています。 パーティション表の一部を収めた 1 つの表スペースのログの最後までロールフォワードすることも可能です。

アタッチまたはデタッチされたデータ・パーティションがあるパーティション表の場合、そのようなデータ・パーティションの表スペースもすべて PIT ロールフォワード操作に含める必要があります。 パーティション化された表にアタッチ、デタッチ、またはドロップされたデータ・パーティションがあるかどうかを判別するには、SYSDATAPARTITIONS カタログ表の状況フィールドを照会します。

パーティション表は、複数の表スペースにある可能性があるため、通常は複数の表スペースをロールフォワードする必要があります。 ドロップされた表のリカバリーによってリカバリーされたデータは、 ROLLFORWARD DATABASE コマンドで指定されたエクスポート・ディレクトリーに書き込まれます。 1 つのコマンドですべての表スペースをロールフォワードすることも、 関与する表スペースのサブセットに対してロールフォワード操作を繰り返すこともできます。 ROLLFORWARD DATABASE コマンドを 1 つまたはいくつかの表スペースに対して実行すると、それらの表スペースにあった表のすべてのデータがリカバリーされます。 ROLLFORWARD DATABASE コマンドが、表のすべてのデータを回復するために必要な表スペースの全セットを指定していないと、通知ログに警告が書き込まれます。 表スペースのサブセットのロールフォワードを可能にすると、1 つのエクスポート・ディレクトリーに入り切らないほどのデータをリカバリーするようなケースの処理が簡単になります。

ONLINE
このキーワードは、表スペース・レベルのロールフォワード・リカバリーをオンラインで実行できるようにするために指定されます。 これは、ロールフォワード・リカバリーの進行中に、他のエージェントが接続できることを意味します。 Db2 pureScale 環境で他のアプリケーションとの並行性をサポートするには、表スペース・レベルのロールフォワード操作で特定の内部ロックのテストが必要になる場合があります。 この環境でのロールフォワード操作は、locktimeout が -1 に設定されていても、ロック・タイムアウトによって失敗する可能性があります。
OVERFLOW LOG PATH log-directory
リカバリー中に、アーカイブ・ログを検索する代替のログ・パスを指定します。 このパラメーターは、ログ・ファイルがlogpathデータベース構成パラメーターの指定場所以外の場所に移動された場合に使われます。 指定するログ・パスは完全修飾パスでなければなりません。 OVERFLOW LOG PATH コマンド・パラメーターは、データベース構成パラメーター overflowlogpathの値 (ある場合) をオーバーライドします。
log-directory ON DBPARTITIONNUM
パーティション・データベース環境では、これにより、特定のデータベース・パーティションのデフォルト・オーバーフロー・ログ・パスを別のログ・パスでオーバーライドできます。
NORETRIEVE
アーカイブ・ログの検索を無効にすることによって、ロールフォワードするログ・ファイルを制御できます。
ロールフォワード操作で抽出ログファイルが使用できないことが検出された場合(たとえば、ディスクエラーのため)、このNORETRIEVEオプションは、アーカイブログファイルを取得できないようにします。
RECOVER DROPPED TABLE drop-table-id
ロールフォワード操作中に、ドロップされた表をリカバリーします。 表 ID は、出力リストのバックアップ ID 列で、LIST HISTORY コマンドを使用して取得できます。 パーティション表の場合、drop-table-id は表全体を示します。したがって、表のすべてのデータ・パーティションを単一の rollforward コマンドでリカバリーすることができます。
TO export-directory
表データが含まれたファイルが書き込まれるディレクトリーを指定します。 このディレクトリーは、すべてのデータベース・パーティションからアクセス可能でなければなりません。

  • ROLLFORWARD DATABASE コマンドでは、それぞれを AND パラメーターで区切ることによって、一度に複数の操作を指定することができます。 例えば、ログの最後までロールフォワードして完了するには、次の 2 つのコマンドを発行します。
    db2 rollforward db sample to end of logs
    db2 rollforward db sample complete
    または、以下のように、AND パラメーターを使用して 2つの操作を結合できます。
    db2 rollforward db sample to end of logs and complete
    しかしこの操作は、2 ステップで実行するようにしてください。 ロールフォワード操作を停止する前に、予期したとおりにその操作が進行したこと、およびログが欠落していないことを確認することが重要です。 これは、ロールフォワード・リカバリー中に不良ログが検出され、不良ログがログの終わりを意味すると解釈される場合に特に重要です。 このような場合は、そのログの損傷していないバックアップ・コピーを使用して、それ以降のログのロールフォワード操作を続けることもできます。 ただし、ロールフォワード AND STOP オプションを使った場合、ロールフォワード操作でエラーが発生すると、エラーが返されます。 この場合、エラーがあってもロールフォワード操作を強制的に停止してオンラインにする (つまりログの中のそのエラーの前の時点でオンラインにする) ための唯一の方法は、ROLLFORWARD STOP コマンドを発行することです。
  • 例 2: ログの終わりまでロールフォワードします (2 つの表スペースがリストアされます)。
    db2 rollforward db sample to end of logs
    db2 rollforward db sample to end of logs and stop
    これら 2 つのステートメントは同等です。 ログの終わりまでの表スペース・ロールフォワード・リカバリーには、AND STOPAND 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 and stop
       tablespace(TBS2, TBS3) online
    2 つのロールフォワード操作を同時に実行することはできません。 2 番目のコマンドは、最初のロールフォワード操作が正常に完了した場合にのみ起動することができます。
  • 例 4: データベースがリストアされます。 それから、OVERFLOW LOG PATH パラメーターを使って、ユーザー出口がアーカイブ・ログを保存するディレクトリーを指定することにより、特定時点へのロールフォワードが実行されます。
    db2 rollforward db sample to 1998-04-03-14.21.56 and stop
       overflow log path (/logs)
  • 例 5 (パーティション・データベース環境): 3 つのデータベース・パーティション (0、1、2) があります。 表スペース TBS1 はすべてのデータベース・パーティションに定義され、表スペース TBS2 はデータベース・パーティション 0と2に定義されます。 データベースをデータベース・パーティション1に復元し、TBS1をデータベース・パーティション0と2に復元した後、データベースをデータベース・パーティション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 (パーティション・データベース環境): 表スペース TBS1 は、データベース・パーティション 0 および 2 のみでリストアされます。 次に、データベース・パーティション 0 および 2 で TBS1 がロールフォワードされます。
    db2 rollforward db sample to end of logs
    データベース・パーティション 1 は無視されます。
    db2 rollforward db sample to end of logs tablespace(TBS1)

    TBS1はデータベースパーティション1でロールフォワードリカバリの準備ができていないため、次のコマンドは失敗します。 SQL4906N が発行されました。

    db2 rollforward db sample to end of logs on dbpartitionnums (0, 2) 
       tablespace(TBS1)

    次のコマンドは正常に実行されます。

    db2 rollforward db sample to 1998-04-03-14.21.56 and stop 
       tablespace(TBS1)

    TBS1 はデータベース・パーティション 1 でロールフォワード・リカバリーを行える状態になっていないため、次のコマンドは失敗します。すべての部分が一緒にロールフォワードされなければなりません。 ポイント・イン・タイムまでの表スペース・ロールフォワード・リカバリーでは、データベース・パーティション・パラメーターは受け入れられません。 表スペースが存在するすべてのデータベース・パーティションでロールフォワード操作を行う必要があります。

    db2 rollforward db sample to 1998-04-03-14.21.56 and stop 
       tablespace(TBS1)
    これは正常に完了します。
  • 例7(パーティション・データベース環境):すべてのデータベース・パーティションで表スペースを復元した後、時点2にロールフォワードしますが、AND STOPを指定しないでください。 ロールフォワード操作はまだ進行中です。 それを取り消し、時点 1 (pit1) までロールフォワードします。
    db2 rollforward db sample to pit2 tablespace(TBS1) 
    db2 rollforward db sample cancel tablespace(TBS1)
    
    ** restore TBS1 on all database partitions **
    
    db2 rollforward db sample to pit1 tablespace(TBS1)
    db2 rollforward db sample stop tablespace(TBS1)
  • 例 8 (パーティション・データベース環境): 表スペースが複数のデータベース・パーティションにあります。 次のコマンドは、ログの最後まで表スペースをロールフォワードします。 表スペースが存在するデータベース・パーティションを指定する必要はありません。 デフォルトでは、このコマンドはdb2nodes.cfgファイルを使用します。
    db2 rollforward database dwtest to end of logs tablespace (tssprodt)

    ログの終わり (特定時点ではなく) までのこの操作は正常に完了します。 表スペースが存在するデータベース・パーティションは指定する必要がありません。 ユーティリティーのデフォルトはdb2nodes.cfg ファイルです。

  • 例 9 (パーティション・データベース環境): (データベース・パーティション 6 上の) 単一パーティションのデータベース・パーティション・グループに存在する 6 つの小さな表スペースをロールフォワード・リカバリーします。
    db2 rollforward database dwtest to end of logs on dbpartitionnum (6)
       tablespace(tsstore, tssbuyer, tsstime, tsswhse, tsslscat, tssvendor)

    ログの終わり (特定時点ではなく) までのこの操作は正常に完了します。

  • 例 10 (パーティション・データベース環境または Db2 pureScale 環境): ROLLFORWARD コマンドで TO END OF BACKUP 節を使用して、すべてのデータベース・パーティションまたは メンバー を最小リカバリー時間までロールフォワードできます。 最小リカバリー時間は、データベースが整合状態にあるとき (データベース・カタログにリストされるオブジェクトがディスク上に存在するオブジェクトと一致しているとき) の、ロールフォワード操作中の最も早い時点です。 特にパーティション・データベースの場合、または Db2 pureScale インスタンスの場合、データベースをロールフォワードするための正しい時点を手動で判別することは困難です。 END OF BACKUP オプションを使用すると、操作が簡単になります。
    db2 rollforward db sample to end of backup and complete
  • 例 11: オンライン・データベース・バックアップ・イメージからのログを使用したリカバリー
    次のコマンドは、 /backup_logs ディレクトリーにリストアされるログを含むオンライン・データベース・バックアップ・イメージからデータベースをリストアします。
    db2 restore database sample... logtarget /backup_logs

    次のコマンドは、すべての環境において、オンライン・バックアップ・イメージからリストアされたログを使用して、データベースをバックアップ・イメージの最後までロールフォワードします。

     db2 rollforward database sample to end of backup and stop overflow log path (/backup_logs)
  • 例 12: パフォーマンスを改善するための、アーカイブ・ログ・パスにあるログを直接使用したロールフォワード

    アーカイブ・ログ・パス (LOGARCHMETH1 または LOGARCHMETH2 で指定) は、DISK 方式 (DISK:/some_logarch_path/ など) を使用するように構成されています。

    すべての環境で、次のコマンドを使用して、アーカイブ・ログ・パスからのログを直接使用してデータベースをロールフォワードします。

    db2 rollforward database sample to end of logs and stop overflow log path (/some_logarch_path/<instance name>/<db name>)

    これにより、 Db2 はログ・ファイルを取得して、ローカル・リトリーブ・ロケーションに配置することができなくなります。 追加の入出力コピー操作のコストが生じないため、パフォーマンスが向上します。

  • 例 13: ログ転送を使用したロールフォワード

    OVERFLOW LOG PATH パラメーターを使用して、 ROLLFORWARD コマンドにログの代替セットを指定することができます。 ログ・ファイルを提供するには、データベース環境に基づいて必要な一連のパスを作成し、それらのパスに ROLLFORWARD コマンドに必要なログ・ファイルを入力します。

    次のように、環境固有のコマンドを使用してデータベースをロールフォワードします。
    • 単一パーティション・データベース環境におけるデータベースのロールフォワード
      代替のログ・セットを提供するには、基本オーバーフロー・パスを作成するか、データベース・パーティション番号とログ・ストリーム ID が追加された基本オーバーフロー・パスを作成します。
      mkdir -p /overflow
      または
      mkdir -p /overflow/NODE0000/LOGSTREAM0000
      パスを作成してデータを入力したら、次のコマンドを実行して、オーバーフロー・ログ・パスのログを使用してデータベースをロールフォワードします。
      db2 rollforward database sample to end of logs overflow log path (/overflow)
      ROLLFORWARD コマンドが正常に完了したことを確認した後、次のコマンドを使用してロールフォワード操作を完了します。
      db2 rollforward database sample to end of logs and stop overflow log path (/overflow)
    • 複数パーティション・データベース環境におけるデータベースのロールフォワード

      代替のログ・セットを提供し、複数のパーティションにデフォルトのオーバーフロー・ログ・パスを使用するには、それぞれのパーティション用のパスをデフォルトのオーバーフロー・ログ・パスの下に作成できます。 各パスには、対応するデータベース・パーティション番号とログ・ストリーム ID を付加することも必要です。

      0、1、2、3 という番号が付された 4 つのパーティションがある場合、次のパスを作成します。
      mkdir -p /overflow/NODE0000/LOGSTREAM0000
      mkdir -p /overflow/NODE0001/LOGSTREAM0001
      mkdir -p /overflow/NODE0002/LOGSTREAM0002
      mkdir -p /overflow/NODE0003/LOGSTREAM0003
      パスを作成してデータを入力したら、次のコマンドを実行して、デフォルトのオーバーフロー・ログ・パスのログを使用してデータベースをロールフォワードします。
      db2 rollforward database sample to end of logs overflow log path (/overflow)
      ROLLFORWARD コマンドが正常に完了したことを確認した後、次のコマンドを使用してロールフォワード操作を完了します。
      db2 rollforward database sample to end of logs and stop overflow log path (/overflow)

      すべてのデータベース・パーティションにデフォルトのオーバーフロー・ログ・パスを使用できるわけではありません。 代替のログ・セットを提供して、デフォルトのオーバーフロー・ログ・パスをオーバーライドできます。

      デフォルトのオーバーフロー・ログ・パスをオーバーライドする場合、それぞれのパーティションは単一パーティション環境として扱われます。 オーバーライドするパスは、データベース・パーティション番号とログ・ストリーム ID を付加して作成することも、付加せずに作成することもできます。

      0、1、2、3の番号が付いた 4つのパーティションがあるとします。 パーティション1のデフォルトのオーバーフローログパスを/node1でオーバーライドし、パーティション3のデフォルトのオーバーフローログパスを/ node3でオーバーライドするには、次のパスを作成してください。

      • パーティション 0:
        mkdir -p /overflow/NODE0000/LOGSTREAM0000
      • パーティション 1:
        mkdir -p /node1 OR mkdir -p /node1/NODE0001/LOGSTREAM0001
      • パーティション 2:
        mkdir -p /overflow/NODE0002/LOGSTREAM0002
      • パーティション 3:
        mkdir -p /node3 OR mkdir -p /node3/NODE0003/LOGSTREAM0003
      パスを作成してデータを入力したら、次のコマンドを実行して、デフォルトのオーバーフロー・ログ・パスとオーバーライド・ログ・パスのログを使用してデータベースをロールフォワードします。
      db2 rollforward database sample to end of logs on all dbpartitionnums 
      overflow log path (/overflow, /node1 on dbpartitionnum 1, /node3 on dbpartitionnum 3)
      ROLLFORWARD コマンドが正常に完了したことを確認した後、次のコマンドを使用してロールフォワード操作を完了します。
      db2 rollforward database sample to end of logs on all dbpartitionnums and stop 
      overflow log path
      (/overflow, /node1 on dbpartitionnum 1, /node3 on dbpartitionnum 3)
    • pureScale データベース環境におけるデータベースのロールフォワード

      代替のログ・セットを提供するには、対応するデータベース・パーティション番号とログ・ストリーム ID を付加してパスを作成します。

      0、1と2の番号が付けられた3つのメンバー(ログストリーム)が存在すると仮定して、次のパスを作成します。
      mkdir -p /overflow/NODE0000/LOGSTREAM0000
      mkdir -p /overflow/NODE0000/LOGSTREAM0001
      mkdir -p /overflow/NODE0000/LOGSTREAM0002
      パスを作成して設定したら、次のコマンドでデフォルトのオーバーフローログパスのログを使うデータベースをロールフォワードします。
      db2 rollforward database sample to end of logs overflow log path (/overflow)
      ROLLFORWARD コマンドが正常に完了したことを確認した後、次のコマンドを使用してロールフォワードを完了します。
      db2 rollforward database sample to end of logs and stop overflow log path (/overflow)
      注: ログ・ファイルがオーバーフロー・ログ・パスとアクティブ・ログ・パスの両方に存在する場合は、アクティブ・ログ・パス内のログ・ファイルが使用されます。

使用上の注意

オンライン・バックアップ操作中に作成されたイメージからリストアする場合は、 ロールフォワード操作のために指定される時点は、オンライン・バックアップ処理が完了する時点より後でなければなりません。 ロールフォワード操作がこのポイントを過ぎる前に停止すると、データベースはロールフォワード・ペンディング状態のままとなります。 表スペースがbiengロールフォワードされた場合、ロールフォワード進行中の状態のままになります。

1 つ以上の表スペースをある時点までロールフォワードしている場合は、ロールフォワード操作は、 最低でも最小リカバリー時間 (この表スペースまたはその表のシステム・カタログに関して最後に更新されたもの) まで継続する必要があります。 LIST TABLESPACES SHOW DETAIL コマンドを使用すると、表スペースの最小リカバリー時間 (協定世界時、または UTC) を取得できます。 Db2 pureScale 環境では、 LIST TABLESPACES コマンドは推奨されません。以下のモニター UDF を使用してください。 SELECT * FROM TABLE( SYSPROC.MON_GET_TABLESPACE('TBSPACE_1,0) )

Db2 pureScale 環境では、ロールフォワード操作を開始する前に、取得パスに使用可能なディスク・スペースが十分にあることを確認してください。 この予防措置により、パフォーマンスに影響を与えることなく、 Db2 pureScale 環境で必要に応じて、より多くのファイルをアーカイブから取得する操作が可能になります。 すべてのメンバーのアクティブ・ログ・スペースの値を取得するために必要なスペース量を計算するには、公式 (logprimary + logsecond) * number of membersを使用します。

システム期間テンポラル表またはバイテンポラル表を含む表スペースを特定の時点までロールフォワードする場合、 ROLLFORWARD DATABASE コマンドには、関連付けられた履歴表を含む表スペースの名前を含める必要があります。 テンポラル表のための表スペースと履歴表のための表スペースを別々にロールフォワードすることができますが、ロールフォワードできるのはログの終わりまでです。

データベースのロールフォワードでは、テープデバイスを使った負荷回復が必要になる場合があります。 別のテープを求める要求が出された場合は、次の入力のいずれかで応答できます。
c
継続します。 警告メッセージ生成装置の使用を続けます (例えば、新しいテープがマウントされたとき)。
d
装置は終了します。 警告メッセージ生成装置の使用を停止します (例えば、テープがもう存在しない場合)。
t
終了します。 影響を受けるすべての表スペースをオフラインにしますが、ロールフォワードの処理は継続します。

ROLLFORWARD DATABASE コマンドが、必要とする次のログを検出できない場合は、そのログ名が SQLCA で返され、ロールフォワード・リカバリーが停止します。 使用可能なログがこれ以上ない場合は、STOP パラメーターを使ってロールフォワード・リカバリーを停止します。 未完了のトランザクションはロールバックされ、 データベースまたは表スペースが確実に整合した状態になるようにします。

データベースのロールフォワード操作が表スペース・スキーマ・トランスポートのログ・レコードを検出した場合、対応するトランスポート表スペースはオフラインになり、ドロップ・ペンディング状態に移行します。 この動作は、移送表スペースとその内容を再構築するための完全ログがないために発生します。 転送完了後に、ターゲット・データベースのフルバックアップを取られます。 そうすることで、後続のロールフォワード操作がログストリーム内のスキーマトランスポートのポイントを通過しないようにします。

注: 再配分操作によるロールフォワードでは、データ再配分のログ・レコードが記録されないため、データベースの内容をリストアすることはできません。 REDISTRIBUTE DATABASE PARTITION GROUP コマンドを参照してください。

データベース・バックアップからログ・ファイルを抽出し、データベースに対して TO END OF BACKUP 節を指定して ROLLFORWARD コマンドを実行する場合は、NORETRIEVE オプションを使用してください。 必要なすべてのログファイルが使用可能であり、アーカイブの場所からファイルを取得する必要がないため、NORETRIEVEオプションが必要です。 NORETRIEVE オプションを使用しない場合、このロールフォワード操作には不要ないくつかのアーカイブ・ログ・ファイルが取得される可能性があります。 アーカイブ・ロケーションに他のログ・チェーンからのログ・ファイルが含まれている場合、 ROLLFORWARD は SQLCODE -1265 になります。