ペンディング中の定義変更がマテリアライズされる前のポイント・イン・タイムへのリカバリー

変更の開始保留中の定義変更をマテリアライズする前の時点まで、パーティション単位の成長(UTS)テーブルスペース、パーティション単位の範囲テーブルスペース、LOBテーブルスペース、XMLテーブルスペースを復元することができます。変更の終わり

このタスクについて

保留中の定義変更が実装される前の時点へのリカバリがまったくサポートされていない場合もあり、サポートされている場合でもさまざまな制限が適用されます。 詳細については、「ポイントインタイム リカバリ」の「 ポイントインタイム リカバリの制限」を参照してください。

プロシージャー

表スペースを保留中の定義変更のマテリアライズより前のポイント・イン・タイムにリカバリーするには、次のようにします。

  1. RECOVER ユーティリティーを実行し、データを希望のポイント・イン・タイムまでリカバリーします。

    TOCOPY オプション、TOLASTCOPY オプション、または TOLASTFULLCOPY オプションを指定する場合、SHRLEVEL REFERENCE オプションを使って取ったイメージ・コピーを使用する必要があります。 該当するイメージ・コピーがない場合は、TOLOGPOINT オプションまたは TORBA オプションを指定して RECOVER を実行することができます。

    ほとんどのタイプの保留中の定義変更の場合、RECOVER ユーティリティーの実行後に、表スペースは再編成ペンディング (REORP) 状況になります。 変更の開始パーティション制限キーと列定義の変更は例外であり、その場合はREORGは不要です。変更の終わり

    制限事項 :この手順を完了した後、次の手順を完了する前に、以下の操作は一切実行できません
    • 表スペース、表スペース内のオブジェクト、表スペースの表に関連する索引、表スペースに関連付けられている補助オブジェクトに対する以下のステートメントの実行。
      • CREATE TABLE
      • CREATE AUXILIARY TABLE
      • CREATE INDEX
      • ALTER TABLE
      • ALTER INDEX
      • RENAME
      • DROP TABLE
    • 以下のオブジェクトに対して保留中の定義変更が生じることになる SQL ステートメントの実行。
      • 表スペース
      • 表スペースの表
      • 表スペースに関連する補助表スペース
      • 表スペースの表の索引
    • 以下のリストに含まれないユーティリティーの実行。
      • 同じポイント・イン・タイムへの RECOVER
      • REORG
      • REPAIR DBD
      • REPORT RECOVERY
  2. 変更の開始テーブル空間がREORG保留(REORP)状態にある場合、テーブル空間全体に対してSHRLEVEL REFERENCEでREORG TABLESPACEユーティリティを実行し、ポイント・イン・タイム・リカバリ・プロセスを完了します。変更の終わり

    基本表スペースおよび基本表スペースの LOB 列に関する LOB 表スペースに保留中の定義変更が存在する場合、まず LOB 表スペースに対して REORG を実行し、その後、基本表スペースに対して REORG を実行します。

以下の例は、保留中の定義変更がマテリアライズされる前のポイント・イン・タイムに表スペースをリカバリーし、SHRLEVEL REFERENCE を指定した REORG TABLESPACE ユーティリティーを使用してリカバリーを完了する方法を示すシナリオです。

汎用プログラミングインターフェース情報の開始。
  1. 以下の ALTER TABLESPACE ステートメントを実行して、バッファー・プールのページ・サイズを変更します。 この変更は、保留中の定義変更です。
    ALTER TABLESPACE DB1.TS1 BUFFERPOOL BP8K0 MAXPARTITIONS 20 ;
  2. REORGを実行して、保留中の定義変更を確定します。
  3. 以下の RECOVER 制御ステートメントを実行し、表スペースをポイント・イン・タイム 2012-10-09-07.15.22.216020 にリカバリーします。
    RECOVER TABLESPACE DB1.TS1
            TOLOGPOINT X'00000551BE7D'

    このステートメントを実行すると、表スペースは再編成ペンディング (REORP) 状態になり、OBJTYPE = 'S' (表スペースを示す) のエントリーが SYSPENDINGDDL 表に挿入されます。

  4. 以下の SELECT ステートメントを実行して、SYSIBM.SYSPENDINGDDL カタログ表を照会します。
    SELECT DBNAME, TSNAME, OBJSCHEMA, OBJNAME, OBJTYPE, OPTION_SEQNO,
    OPTION_KEYWORD, OPTION_VALUE, CREATEDTS
    FROM SYSIBM.SYSPENDINGDDL
    WHERE DBNAME = 'DB1'
    AND TSNAME = 'TS1'
    ;

    この照会では、以下の出力が結果として戻ります。

    表 1. 保留中の定義変更のマテリアライズ前のポイント・イン・タイムにリカバリーした後の SYSPENDINGDDL カタログ表に対する SELECT ステートメントの出力
    DBNAME TSNAME OBJSCHEMA OBJNAME OBJTYPE
    DB1 TS1 DB1 TS1 S
    表 2. 保留中の定義変更のマテリアライズ前のポイント・イン・タイムにリカバリーした後の SYSPENDINGDDL カタログ表に対する SELECT ステートメントの出力 (続き)
    OPTION_SEQNO OPTION_KEYWORD OPTION_VALUE CREATEDTS
    1 TOLOGPOINT 00000551BE7D
    2012年10月4日 -
    07.14.20.204010

    汎用プログラミングインターフェース情報の終了。

  5. ここで、表スペース全体に対し、SHRLEVEL REFERENCE を指定した REORG TABLESPACE ユーティリティーを実行します。 以下に例を示します。
    REORG TABLESPACE DB1.TS1 SHRLEVEL REFERENCE
    REORG ユーティリティーは、ポイント・イン・タイム・リカバリーを完了します。 REORG ユーティリティーの実行後、再編成ペンディング (REORP) 状態はクリアされ、表スペースに関する、SYSPENDINGDDL 表内のすべてのエントリーが削除されます。