IBM Support

[Db2] 増分・差分バックアップを使ったデータベースの復旧方法

Question & Answer


Question

データベースの増分バックアップと差分バックアップがいくつかあります。どのバックアップ・ファイルをどの順序でリストアし、ロールフォワードすればよいのでしょうか。

Answer

  • ここでは、シングル・ノードのデータベースをバックアップ・ファイルからリストアするケースを扱います。
  • 増分・差分バックアップを使用したリストアの概要については、Appendix A を参照してください。
 
 
  1.  増分・差分バックアップのリストア
    状況に合わせて、下記の A から E のいずれかの方法で増分および差分バックアップをリストアします。

    【リストア方法の概要と制限】
    1. RESTORE コマンドの INCREMENTAL AUTOMATIC オプションを使用する方法
      概要
      指定した増分もしくは差分バックアップと、その前にリストアが必要なフル・バックアップ以降のバックアップを全て自動的にリストアします。
      制限
      INCREMENTAL AUTOMATIC の使用には一部制限があります。詳細はマニュアルの 自動増分リストアの制限 をご確認ください。
       
    2. db2ckrst コマンドを使用する方法
      概要
      既存のデータベースのバックアップ履歴をもとに、 RESTORE コマンドのリストを自動生成し、マニュアルで実行します。
      上記の方法 A が使用できない場合に使用します。
      制限
      既存のデータベースが存在し、バックアップ履歴が存在している必要があります。※
      ※ バックアップ履歴は、db2 LIST HISTORY BACKUP ALL FOR {database_name} コマンドで確認できます。
       
    3. LIST HISTORY BACKUP 出力 (バックアップ履歴) を使用する方法
      概要
      既存のデータベースのバックアップ履歴をもとに、必要なバックアップとリストア順序を確認し、RESTORE コマンドをマニュアルで組み立て、実行します。
      上記の方法 A、B が使用できない場合に使用します。
      制限
      データベースのバックアップ履歴が必要です。※
      ※ 既存のデータベースが存在する場合は、db2 LIST HISTORY BACKUP ALL FOR {database_name} コマンドで確認できます。
       
    4. db2ckbkp コマンドを使用する方法
      概要
      バックアップ・ファイルに含まれる情報をもとに必要なバックアップとリストア順序を確認し、RESTORE コマンドをマニュアルで組み立て、実行します。
      上記の方法 A、B が使用できない場合に使用します。
      制限
      制限は特にありません。
       
    5. db2diag.log を使用する方法
      概要
      db2diag.log に含まれる情報をもとに必要なバックアップと RESTORE 順序を確認し、RESTORE コマンドをマニュアルで組み立て、実行します。
      上記の方法 A、B、C、D が使用できない場合に使用します。
      制限
      制限は特にありません。

    【リストア方法の詳細】
    この文書では次のコマンド構文規則を使用します。

    [xxx] : xxx はオプションであることを示します。
    {yyy} : yyy は必須であることを示します。
    [xxx|yyy] : xxx もしくは yyy のいずれかを指定することができます。
    [xxx {yyy}] : xxx を指定する場合、 yyy の指定は必須です。
     
    1. restore コマンドの incremental automatic オプションを使用する方法
      次のコマンドは指定したバックアップ・タイムスタンプのバックアップ、およびこのバックアップのリストアに必要な他の全てのバックアップを自動的にリストアします。
      • db2 restore db {database_name} incremental automatic [from {backup_file_path}] taken at {yyyymmddHHMMSS} [logtarget {overflow_log_path}]
        database_name : データベース名を指定します。
        backup_file_path : バックアップ・ファイルが置かれたディレクトリーを指定します。指定しない場合はカレント・ディレクトリのバックアップ・ファイルを探します。
        yyyymmddHHMMSS : バックアップのタイムスタンプを西暦4桁と Hour、Minutes、Second の間を空けずに指定します。
        overflow_log_path : 最後のバックアップがオンライン・バックアップの場合に、バックアップ中のログ・ファイルを戻すパスを指定します。※

        ※ TAKEN AT でタイムスタンプを指定したバックアップがオンライン・バックアップ・ファイルの場合は、LOGTARGET オプションを指定して、バックアップ・ファイルからログ・ファイルを抽出します。
        オンライン・バックアップの場合は必要なログ・ファイルがデフォルトでバックアップに含まれます。(複数パーティション・オンライン・バックアップの場合を除く)

        例)
        $ db2 restore db sample incremental automatic taken at 20151124164956 logtarget /work/tmp/overflowlog
        DB20000I  RESTORE DATABASE コマンドが正常に完了しました。


       
    2. db2ckrst コマンドを使用する方法
      下記の要領で、リストアする必要のあるバックアップのタイムスタンプを入手し、リストア・コマンドを準備のうえ実行します。

      B.1 既存のデータベースが存在するインスタンスで次のコマンドを実行し、バックアップ・コマンドのリストを入手します。
      • db2ckrst -d {database_name} -t {timestamp}
        例)
        $ db2ckrst -d sample -t 20151124164956
        
        Suggested restore order of images using timestamp 20151124164956 for
        database sample.
        ====================================================================
         restore db sample incremental taken at 20151124164956
         restore db sample incremental taken at 20151124164432
         restore db sample incremental taken at 20151124164909
         restore db sample incremental taken at 20151124164956
        ====================================================================

      B.2 必要なオプションを追加のうえ、出力されたコマンドを上から順に実行します。
      • db2 restore db {database_name} incremental [from {backup_file_path}] taken at {timestamp1}
        db2 restore db {database_name} incremental [from {backup_file_path}] taken at {timestampN}
        :
        :
        db2 restore db {database_name} incremental [from {backup_file_path}] taken at {timestamp1} [logtarget {overflow_log_path}]
        ここで、timestamp1 ~ timestampN には、 db2ckrst が出力したタイムスタンプを、出力された順に指定します。
        オプション logtarget {overflow_log_path} は、最後のバックアップがオンライン・バックアップの場合にのみ指定し、指定するのは最後のリストア実行時のみです。
        途中のバックアップがオンライン・バックアップであっても、 最後のバックアップがオンライン・バックアップで無い限り logtarget {overflow_log_path} を指定する必要はありません。
        その他のオプションについての解説は上記「A. restore コマンドの incremental automatic オプションを使用する方法」をご確認ください。

       
    3. LIST HISTORY BACKUP 出力 (バックアップ履歴) を使用する方法

      C.1 バックアップ履歴の入手

      既存のデータベースが存在するインスタンスで次のコマンドを実行します。
      • db2 list history backup all for {database_name}
      上記コマンド出力中の項目 Op (Operation) の B はバックアップ、Obj (Object) の D はデータベース、 P は表スペースを示し、Type は次のいずれかとなります。
      • Backup and restore operation types:
        
           D - Delta offline (差分オフライン・バックアップ)
           E - Delta online (差分オンライン・バックアップ)
           F - Offline (オフライン・フル・バックアップ)
           I - Incremental offline (増分オフライン・バックアップ)
           N - Online (オンライン・フル・バックアップ)
           O - Incremental online (増分オンライン・バックアップ)
        例)
        $ db2 list history backup all for sample
        
                            sample の履歴ファイルのリスト
        
        突き合わせファイル項目数 = 10
        
        ・・・・・
        
         Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log  Backup ID
         -- --- ------------------ ---- --- ------------ ------------ --------------
          B  D  20151124163544001   F    D  S0000000.LOG S0000000.LOG <==オフライン・データベース・フル・バックアップ
         ----------------------------------------------------------------------------
          8 個の表スペースを含みます:
        
         00001 SYSCATSPACE
         00002 USERSPACE1
         00003 IBMDB2SAMPLEREL
         00004 IBMDB2SAMPLEXML
         00005 SYSTOOLSPACE
         00006 MYUSR1
         00007 MYUSR2
         00008 MYUSR3
         ----------------------------------------------------------------------------
            Comment: DB2 BACKUP SAMPLE OFFLINE
         開始時刻: 20151124163544 <==このバックアップのタイムスタンプ
           終了時刻: 20151124163549
             状況: A
         ----------------------------------------------------------------------------
          EID: 30 ロケーション: /work/tmp/DBBACKUP
        
        ・・・・
        
         Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log  Backup ID
         -- --- ------------------ ---- --- ------------ ------------ --------------
          B  D  20151124164836001   O    D  S0000005.LOG S0000005.LOG <==増分オンライン・データベース・バックアップ
         ----------------------------------------------------------------------------
          8 個の表スペースを含みます:
        
         00001 SYSCATSPACE
         00002 USERSPACE1
         00003 IBMDB2SAMPLEREL
         00004 IBMDB2SAMPLEXML
         00005 SYSTOOLSPACE
         00006 MYUSR1
         00007 MYUSR2
         00008 MYUSR3
         ----------------------------------------------------------------------------
            Comment: DB2 BACKUP SAMPLE ONLINE
         開始時刻: 20151124164836 <==このバックアップのタイムスタンプ
           終了時刻: 20151124164837
             状況: A
         ----------------------------------------------------------------------------
          EID: 41 ロケーション: /work/tmp/DBBACKUP
        
        
        ・・・・
        
         Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log  Backup ID
         -- --- ------------------ ---- --- ------------ ------------ --------------
          B  D  20151124164956001   E    D  S0000007.LOG S0000007.LOG <==差分オンライン・データベース・バックアップ
         ----------------------------------------------------------------------------
          8 個の表スペースを含みます:
        
         00001 SYSCATSPACE
         00002 USERSPACE1
         00003 IBMDB2SAMPLEREL
         00004 IBMDB2SAMPLEXML
         00005 SYSTOOLSPACE
         00006 MYUSR1
         00007 MYUSR2
         00008 MYUSR3
         ----------------------------------------------------------------------------
            Comment: DB2 BACKUP SAMPLE ONLINE
         開始時刻: 20151124164956 <==このバックアップのタイムスタンプ
           終了時刻: 20151124164957
             状況: A
         ----------------------------------------------------------------------------
          EID: 45 ロケーション: /work/tmp/DBBACKUP
      C.2 使用するバックアップの確認
      • C.2.1 バックアップ記録の確認
        バックアップ履歴より、次のバックアップ記録を探します。(オンライン、オフラインを問わず)
        • (a) 直近のフル・バックアップ
          (b) 直近のフル・バックアップ以降に取得した最新の増分バックアップ (増分バックアップが存在する場合)
          (c) 直近のフル・バックアップ以降、もしくは最新の増分バックアップ以降 (増分バックアップが存在する場合) に取得した全ての差分バックアップ

        C.2.2 バックアップ・ファイルの確認
        確認したバックアップのタイムスタンプ (開始時刻) を名前に含むバックアップ・ファイルが存在することを確認します。
        バックアップ・ファイルの命名規則については、文末の Appendix B を参照してください。

      C.3 リストア順序の確認
      差分バックアップの有無、増分バックアップの有無に応じて、次の順番でリストア・コマンドを組み立ます。
      • C.3.1 差分バックアップを使用する場合
        差分バックアップを使用する場合は、最後の差分バックアップを最初と最後にリストアします。

        <差分バックアップと増分バックアップを使用する場合>
        db2 restore db {database_name} incremental taken at {最後の差分バックアップのタイムスタンプ}
        db2 restore db {database_name} incremental taken at {フル・バックアップのタイムスタンプ}
        db2 restore db {database_name} incremental taken at {増分バックアップのタイムスタンプ}
        db2 restore db {database_name} incremental taken at {増分バックアップ直後の差分バックアップのタイムスタンプ}
        db2 restore db {database_name} incremental taken at {次の差分バックアップのタイムスタンプ}
        db2 restore db {database_name} incremental taken at {次の差分バックアップのタイムスタンプ}
        :
        db2 restore db {database_name} incremental taken at {最後の差分バックアップのタイムスタンプ}

        <差分バックアップを使用し、増分バックアップを使用しない場合>
        db2 restore db {database_name} incremental taken at {最後の差分バックアップのタイムスタンプ}
        db2 restore db {database_name} incremental taken at {フル・バックアップのタイムスタンプ}
        db2 restore db {database_name} incremental taken at {フル・バックアップ直後の差分バックアップのタイムスタンプ}
        db2 restore db {database_name} incremental taken at {次の差分バックアップのタイムスタンプ}
        db2 restore db {database_name} incremental taken at {次の差分バックアップのタイムスタンプ}
        :
        db2 restore db {database_name} incremental taken at {最後の差分バックアップのタイムスタンプ}

        C.3.2 差分バックアップを使用しない場合
        増分バックアップのみの場合は、最初と最後に同じ増分バックアップをリストアします。
        <増分バックアップを使用し、差分バックアップを使用しない場合>
        db2 restore db {database_name} incremental taken at {増分バックアップのタイムスタンプ}
        db2 restore db {database_name} incremental taken at {直近のフル・バックアップのタイムスタンプ}
        db2 restore db {database_name} incremental taken at {増分バックアップのタイムスタンプ}
      C.4 必要なオプションの追加と実行
      オプションを追加の上、実行します。
      • db2 restore db {database_name} incremental [from {backup_file_path}] taken at {timestamp(N)}
        db2 restore db {database_name} incremental [from {backup_file_path}] taken at {timestamp(1)}
        db2 restore db {database_name} incremental [from {backup_file_path}] taken at {timestamp(2)}
        :
        :
        db2 restore db {database_name} incremental [from {backup_file_path}] taken at {timestamp(N)} [logtarget {overflow_log_path}]
        ここで、timestamp(1) ~ timestamp(N) には、 ステップ C.3 で確認したタイムスタンプを指定します。
        オプション logtarget {overflow_log_path} は、最後のバックアップがオンライン・バックアップの場合にのみ指定し、指定するのは最後のリストア実行時のみです。
        途中のバックアップがオンライン・バックアップであっても、 最後のバックアップがオンライン・バックアップでない限り logtarget {overflow_log_path} を指定する必要はありません。
        その他のオプションについての解説は、上記「A. restore コマンドの incremental automatic オプションを使用する方法」をご確認ください。

       
    4. db2ckbkp コマンドを使用する方法
      バックアップ・ファイルに含まれる情報をもとに必要なバックアップと適用順序を確認します。

      D.1 バックアップ・ファイルの情報抽出
      • db2ckbkp コマンドを実行して、バックアップ・ファイルより次の情報を確認します。
        • Server Database Alias
        • Timestamp
        • Backup Mode
        • Backup Type
        • Backup Granularity
        • Full Backup Time
        • Last Backup Time
        • Database seed (オプション)

        次のコマンドを使用します。
        db2ckbkp {-H | -T} | [-a] {backupfile}
        -a 出力可能な全ての情報を出力し、バックアップを検査します。
        -H ヘッダー情報を出力します。他のオプションと一緒に指定することはきません。バックアップを検査しません。
        -T 表スペースに関する情報を出力します。他のオプションと一緒に指定することはきません。バックアップを検査しません。

        Full Backup Time および Last Backup Time はオプション -a もしくは -T で確認でき、他の情報は -a もしくは -H で確認できます。
        よって、バックアップ・ファイルの検査をせずに、全ての情報を入手するには、-H を指定した場合と、 -T を指定した場合の2回実行する必要があります。

        例)
        ローカルにある全ての SAMPLE データベースのバックアップより、上記の情報を確認。(UNIX)
        $ ls SAMPLE* | while read f ;do echo "\n### $f ###"; db2ckbkp -a $f | egrep 'Server Database Alias|Timestamp.*--|Backup Mode|Backup Type|Backup Gran|Database seed|Full Backup Time:|Last Backup Time:' | sort -r | uniq;done
        
        ### SAMPLE.0.v97fp8.NODE0000.CATN0000.20151126174324.001 ###
                            Database seed = 2092591816
                Timestamp                      -- 20151126174324
                Server Database Alias          -- SAMPLE
                Backup Type                    -- 0
                Backup Mode                    -- 0
                Backup Gran.                   -- 0
                     Last Backup Time:  5656C4E4 = "20151126173756"
                     Last Backup Time:  00000000 = "19700101090000"
                     Full Backup Time:  5656C4E4 = "20151126173756"
                     Full Backup Time:  00000000 = "19700101090000"
        
        ### SAMPLE.0.v97fp8.NODE0000.CATN0000.20151126174537.001 ###
                            Database seed = 2092591816
                Timestamp                      -- 20151126174537
                Server Database Alias          -- SAMPLE
                Backup Type                    -- 0
                Backup Mode                    -- 0
                Backup Gran.                   -- 16
                     Last Backup Time:  5656C698 = "20151126174512"
                     Full Backup Time:  5656C62C = "20151126174324"
        
        ### SAMPLE.0.v97fp8.NODE0000.CATN0000.20151126174559.001 ###
                            Database seed = 2092591816
                Timestamp                      -- 20151126174559
                Server Database Alias          -- SAMPLE
                Backup Type                    -- 0
                Backup Mode                    -- 0
                Backup Gran.                   -- 48
                     Last Backup Time:  5656C6B1 = "20151126174537"
                     Full Backup Time:  5656C62C = "20151126174324"







      •  

      D.2. 使用するバックアップの確認
      • D.2.1 最新のバックアップを探し、Full Backup Time と Last Backup Time を確認します。

        D.2.2 最新のバックアップの Backup Mode を調べます。
        0 = オフライン
        1 = オンライン

        D.2.3 最新のバックアップの Backup Type を調べます。
        0 = データベース
        3 = 表スペース
        4 = ロード・コピー

        D.2.4 最新のバックアップの Backup Granularity を調べます。
        48 = Incremental delta (差分バックアップ)
        16 = Incremental (増分バックアップ)
        0 = Non-incremental (フル・バックアップ)

        D.2.5 使用する他のバックアップを確認します。

        <最新のバックアップが Incremental delta の場合>
        1. 最新のバックアップの Last Backup Time を Timestamp に持つバックアップを探します。
        2. 該当のバックアップが見つかった場合は、さらにこのバックアップの Last Backup Time を Timestamp に持つバックアップを探します。
        3. 上記を Non-incremental もしくは Incremental (delta無し)のバックアップが見つかるまで繰り返します。
        4. ステップ 3 で見つかったバックアップが Incremental の場合、このバックアップの Last Backup Time を Timestamp に持つフル・バックアップを探します。

        <最新のバックアップが Incremental の場合>
        最新のバックアップの Full Backup Time を Timestamp に持つフル・バックアップを探します。

      D.3. リストア・コマンドの準備と実行
      C.3 を参照してください。
       
    5. db2diag.log を使用する方法
      手元にバックアップ・ファイルが無い場合や、db2ckbkp コマンドが使用できない場合に使用します。

      E.1 最新のフル・データベース・バックアップの確認
      • db2diag.log にて、バックアップの開始を示す次のいずれかのメッセージを含むエントリーをログの最後より遡って探します。
        該当エントリーのタイムスタンプを書き控えておきます。
        "MESSAGE : Starting an offline db backup."
        "MESSAGE : Starting an online db backup."
      E.2 フル・データベース・バックアップ正常完了の確認
      • フル・バックアップ開始後、同じ TID 番号の出力で、次のメッセージが出力されていることを確認します。
        エラーや中断で終わっている場合は 2.1 に戻り、さらに古いバックアップを探します。
        "MESSAGE : Backup complete."

         
      E.3 使用する増分および差分バックアップの確認
      • ステップ 2.1 で確認したバックアップ開始の時刻以降で、次のいずれかのメッセージを含むエントリーを探します。
        "MESSAGE : Starting an online incremental db backup."
        "MESSAGE : Starting an offline incremental db backup."
        "MESSAGE : Starting an online incremental delta db backup."
        "MESSAGE : Starting an offline incremental delta db backup."
      E4 増分および差分バックアップ正常完了の確認
      増分もしくは差分バックアップ開始後、同じ TID 番号の出力で、次のメッセージが出力されていることを確認します。
      エラーや中断で終わっている場合は、そのひとつ前の増分もしくは差分バックアップまでリストアします。
      "MESSAGE : Backup complete."
      例)
      2015-11-24-16.42.48.324867+540 E124058A484          LEVEL: Info
      PID     : 28704986             TID : 937            PROC : db2sysc 0
      INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE
      APPHDL  : 0-50734              APPID: *LOCAL.db2inst1.151124074246
      AUTHID  : DB2INST1             HOSTNAME: host1
      EDUID   : 937                  EDUNAME: db2agent (SAMPLE) 0
      FUNCTION: DB2 UDB, database utilities, sqlubSetupJobControl, probe:1897
      MESSAGE : Starting an online db backup.
      
      2015-11-24-16.42.57.327688+540 E131982A463          LEVEL: Severe
      PID     : 28704986             TID : 937            PROC : db2sysc 0
      INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE
      APPHDL  : 0-50734              APPID: *LOCAL.db2inst1.151124074246
      AUTHID  : DB2INST1             HOSTNAME: host1
      EDUID   : 937                  EDUNAME: db2agent (SAMPLE) 0
      FUNCTION: DB2 UDB, database utilities, sqlubcka, probe:1075
      MESSAGE : Backup terminated. <==中断されている
      
      2015-11-24-16.44.32.322704+540 E147371A484          LEVEL: Info
      PID     : 28704986             TID : 14842          PROC : db2sysc 0
      INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE
      APPHDL  : 0-50758              APPID: *LOCAL.db2inst1.151124074430
      AUTHID  : DB2INST1             HOSTNAME: host1
      EDUID   : 14842                EDUNAME: db2agent (SAMPLE) 0
      FUNCTION: DB2 UDB, database utilities, sqlubSetupJobControl, probe:1897
      MESSAGE : Starting an online db backup.
      
      2015-11-24-16.44.41.607575+540 E150295A459          LEVEL: Info
      PID     : 28704986             TID : 14842          PROC : db2sysc 0
      INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE
      APPHDL  : 0-50758              APPID: *LOCAL.db2inst1.151124074430
      AUTHID  : DB2INST1             HOSTNAME: host1
      EDUID   : 14842                EDUNAME: db2agent (SAMPLE) 0
      FUNCTION: DB2 UDB, database utilities, sqlubcka, probe:1070
      MESSAGE : Backup complete.
      
      2015-11-24-16.47.29.202276+540 E164392A497          LEVEL: Info
      PID     : 28704986             TID : 10083          PROC : db2sysc 0
      INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE
      APPHDL  : 0-50776              APPID: *LOCAL.db2inst1.151124074726
      AUTHID  : DB2INST1             HOSTNAME: host1
      EDUID   : 10083                EDUNAME: db2agent (SAMPLE) 0
      FUNCTION: DB2 UDB, database utilities, sqlubSetupJobControl, probe:1897
      MESSAGE : Starting an offline incremental db backup.
      
      2015-11-24-16.47.30.902960+540 E167516A459          LEVEL: Info
      PID     : 28704986             TID : 10083          PROC : db2sysc 0
      INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE
      APPHDL  : 0-50776              APPID: *LOCAL.db2inst1.151124074726
      AUTHID  : DB2INST1             HOSTNAME: host1
      EDUID   : 10083                EDUNAME: db2agent (SAMPLE) 0
      FUNCTION: DB2 UDB, database utilities, sqlubcka, probe:1070
      MESSAGE : Backup complete.
      
      2015-11-24-16.48.37.038101+540 E176457A496          LEVEL: Info
      PID     : 28704986             TID : 11411          PROC : db2sysc 0
      INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE
      APPHDL  : 0-50789              APPID: *LOCAL.db2inst1.151124074836
      AUTHID  : DB2INST1             HOSTNAME: host1
      EDUID   : 11411                EDUNAME: db2agent (SAMPLE) 0
      FUNCTION: DB2 UDB, database utilities, sqlubSetupJobControl, probe:1897
      MESSAGE : Starting an online incremental db backup.
      
      2015-11-24-16.48.38.072968+540 E179393A459          LEVEL: Info
      PID     : 28704986             TID : 11411          PROC : db2sysc 0
      INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE
      APPHDL  : 0-50789              APPID: *LOCAL.db2inst1.151124074836
      AUTHID  : DB2INST1             HOSTNAME: host1
      EDUID   : 11411                EDUNAME: db2agent (SAMPLE) 0
      FUNCTION: DB2 UDB, database utilities, sqlubcka, probe:1070
      MESSAGE : Backup complete.
      
      2015-11-24-16.49.09.478139+540 E182472A496          LEVEL: Info
      PID     : 28704986             TID : 11421          PROC : db2sysc 0
      INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE
      APPHDL  : 0-50790              APPID: *LOCAL.db2inst1.151124074909
      AUTHID  : DB2INST1             HOSTNAME: host1
      EDUID   : 11421                EDUNAME: db2agent (SAMPLE) 0
      FUNCTION: DB2 UDB, database utilities, sqlubSetupJobControl, probe:1897
      MESSAGE : Starting an online incremental db backup.
      
      2015-11-24-16.49.10.488487+540 E184750A459          LEVEL: Info
      PID     : 28704986             TID : 11421          PROC : db2sysc 0
      INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE
      APPHDL  : 0-50790              APPID: *LOCAL.db2inst1.151124074909
      AUTHID  : DB2INST1             HOSTNAME: host1
      EDUID   : 11421                EDUNAME: db2agent (SAMPLE) 0
      FUNCTION: DB2 UDB, database utilities, sqlubcka, probe:1070
      MESSAGE : Backup complete.
      
      2015-11-24-16.49.56.579238+540 E188835A502          LEVEL: Info
      PID     : 28704986             TID : 11431          PROC : db2sysc 0
      INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE
      APPHDL  : 0-50791              APPID: *LOCAL.db2inst1.151124074956
      AUTHID  : DB2INST1             HOSTNAME: host1
      EDUID   : 11431                EDUNAME: db2agent (SAMPLE) 0
      FUNCTION: DB2 UDB, database utilities, sqlubSetupJobControl, probe:1897
      MESSAGE : Starting an online incremental delta db backup.
      
      2015-11-24-16.49.57.653007+540 E191542A459          LEVEL: Info
      PID     : 28704986             TID : 11431          PROC : db2sysc 0
      INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE
      APPHDL  : 0-50791              APPID: *LOCAL.db2inst1.151124074956
      AUTHID  : DB2INST1             HOSTNAME: host1
      EDUID   : 11431                EDUNAME: db2agent (SAMPLE) 0
      FUNCTION: DB2 UDB, database utilities, sqlubcka, probe:1070
      MESSAGE : Backup complete.
      
      db2diag コマンドを利用して必要な情報を出力できます。
      例1)
      $ db2diag db2diag.log_2015-11-24-19.36.39 -gi message:="backup" -fmt "%{tsyear}%{tsmonth}%{tsday}%{tshour}%{tsmin}%{tssec} : @{msg}"
      20151124163259 : Starting an offline db backup. <== ①2つ前のフル・データベース・バックアップ
      20151124163306 : Backup complete.
      20151124163544 : Starting an offline db backup. <== ②1つ前のフル・データベース・バックアップ
      20151124163549 : Backup complete.
      20151124164248 : Starting an online db backup. <== ③失敗したフル・データベース・バックアップ
      20151124164257 : Backup terminated.
      20151124164432 : Starting an online db backup. <== ④最新のフル・データベース・バックアップ
      20151124164441 : Backup complete.
      20151124164729 : Starting an offline incremental db backup. <== ⑤オフライン増分データベース・バックアップ
      20151124164730 : Backup complete.
      20151124164837 : Starting an online incremental db backup. <== ⑥オンライン増分データベース・バックアップ
      20151124164838 : Backup complete.
      20151124164909 : Starting an online incremental db backup. <== ⑦オンライン増分データベース・バックアップ
      20151124164910 : Backup complete.
      20151124164956 : Starting an online incremental delta db backup. <== ⑧最新のオンライン差分データベース・バックアップ
      20151124164957 : Backup complete.
      例2)
      $ db2diag db2diag.log_2015-11-24-19.36.39 -g message:="Starting an" -fmt "db2 restore db SAMPLE incremental taken at %{tsyear}%{tsmonth}%{tsday}%{tshour}%{tsmin}%{tssec} #%{msg}"
      db2 restore db SAMPLE incremental taken at 20151124163259 #Starting an offline db backup.
      db2 restore db SAMPLE incremental taken at 20151124163544 #Starting an offline db backup.
      db2 restore db SAMPLE incremental taken at 20151124164248 #Starting an online db backup.
      db2 restore db SAMPLE incremental taken at 20151124164432 #Starting an online db backup.
      db2 restore db SAMPLE incremental taken at 20151124164729 #Starting an offline incremental db backup.
      db2 restore db SAMPLE incremental taken at 20151124164837 #Starting an online incremental db backup.
      db2 restore db SAMPLE incremental taken at 20151124164909 #Starting an online incremental db backup.
      db2 restore db SAMPLE incremental taken at 20151124164956 #Starting an online incremental delta db backup.
      
      上記はカレント・ディレクトリーのログ・ファイル db2diag.log_2015-11-24-19.36.39 を使用する場合です。
      ログ・ファイル名を指定しない場合は、DIAGPATH 上の db2diag.log が読み取られます。

      E.5 リストア・コマンドの準備と実行
      • C.3 を参照してください。
        例)
        db2 restore db sample incremental taken at 20151124164956 <== ⑧最新のオンライン差分データベース・バックアップ
        db2 restore db sample incremental taken at 20151124164432 <== ④最新のフル・データベース・バックアップ
        db2 restore db sample incremental taken at 20151124164909 <== ⑦オンライン増分データベース・バックアップ
        db2 restore db sample incremental taken at 20151124164956 <== ⑧最新のオンライン差分データベース・バックアップ







      •  
  2. ロールフォワードの実行
    リストア後、データベースはロールフォワード・ペンディング状態に置かれます。
    次の要領でロールフォワードを実行します。

    a. バックアップより抽出したログ・ファイルの最後までロールフォワードする場合
    db2 "rollforward db {database_name} to end of backup overflow log path ({overflow_log_path}) noretrieve"
    db2 rollforward db  {database_name} complete

    b. ログ・パスおよびミラー・ログ・パス上のログを全てロールフォワードする場合
    db2 "rollforward database {database_name} to end of logs [overflow log path ({overflow_log_path}) [noretrieve]]"
    db2 rollforward db  {database_name} complete
    ここで、 overflow_log_path には RESTORE 時に logtarget オプションに指定したパス(バックアップ・ファイルより抽出したログ・ファイルが置かれたパス)を指定します。
    バックアップ・ファイルからログ・ファイルを抽出し、 TO END OF BACKUP 節を指定して ROLLFORWARD コマンドを実行する場合は、NORETRIEVE オプションを指定します。
    また、ROLLFORWARD コマンドの TO END OF LOGS は存在する全てのログを適用することを指定し、TO END OF BACKUP はバックアップが取得された時点までのログを適用します。

    例)
    $ db2 "rollforward database testdb to end of logs overflow log path (/work/tmp/overflowlog)"
    
                                     ロールフォワード状況
    
     入力データベース別名                   = testdb
     状況を返したメンバーの数               = 1
    
     メンバー ID                            = 0
     ロールフォワード状況                   = DB  作業中
     次に読み込むログ・ファイル             = S0000008.LOG
     処理したログ・ファイル            = S0000006.LOG - S0000007.LOG
     最後にコミットしたトランザクション     = 2016-02-10-08.09.27.000000 UTC
    
    DB20000I  ROLLFORWARD コマンドが正常に完了しました。
    
    $ db2 rollforward database testdb complete
    
                                     ロールフォワード状況
    
     入力データベース別名                   = testdb
     状況を返したメンバーの数               = 1
    
     メンバー ID                            = 0
     ロールフォワード状況                   = 非ペンディング
     次に読み込むログ・ファイル             =
     処理したログ・ファイル            = S0000006.LOG - S0000007.LOG
     最後にコミットしたトランザクション     = 2016-02-10-08.09.27.000000 UTC
    
    DB20000I  ROLLFORWARD コマンドが正常に完了しました。


     
Appendix A: 増分・差分バックアップを使用したリストアの概要

増分バックアップには、直近のフル・バックアップ取得以降の変更が全て含まれます。
差分バックアップには、直近のすべてのタイプのバックアップ以降の変更が含まれます。

よって、リストアするバックアップ・ファイルの順番は次のようになります。

【増分バックアップをリストアし、差分バックアップをリストアしない場合】

1. 増分バックアップ
2. フル・バックアップ
3. 増分バックアップ

詳細:
1. 最後にリストアする増分バックアップより、リストアに必要なメタデータを読み取ります。
2. 使用する増分バックアップの前に取得された直近のフル・バックアップをリストアします。
3. 増分バックアップをリストアします。
(使用するフル・バックアップと増分バックアップの間に、他のフル・バックアップが取得されていない必要があります。)


【差分バックアップをリストアし、増分バックアップをリストアしない場合】

1. 最後の差分バックアップ
2. フル・バックアップ
3. フル・バックアップ直後に取得された差分バックアップ
4. 次の差分バックアップ ・・・ 最後の差分バックアップ

詳細:
1. 最後の差分バックアップより、リストアに必要なメタデータを読み取ります。
2. 差分バックアップの前に取得された直近のフル・バックアップをリストアします。
(使用するフル・バックアップと最後の差分バックアップの間に、他のフル・バックアップや増分バックアップが取得されていない必要があります。)
3. リストアしたフル・バックアップ直後に取得された差分バックアップをリストアします。
4. 次の差分バックアップから、最後の差分バックアップまで、取得順にリストアします。


【増分バックアップと差分バックアップをリストアする場合】

1. 最後の差分バックアップ
2. フル・バックアップ
3. 増分バックアップ
4. 増分バックアップ直後に取得された差分バックアップ
5. 次の差分バックアップ ・・・ 最後の差分バックアップ

詳細:
1. 最後の差分バックアップより、リストアに必要なメタデータを読み取ります。
2. 差分バックアップの前に取得された直近のフル・バックアップをリストアします。
3. リストアしたフル・バックアップと最後の差分バックアップの間に取得された増分バックアップをリストアします。
(複数ある場合は最新のものを使用するとリストア時間が短くなります。)
4. リストアした増分バックアップ直後に取得された差分バックアップをリストアします。
5. 次の差分バックアップから最後の差分バックアップまで、取得順にリストアします。


次の図は、最新のフル・バックアップ C と増分バックアップ 8 が使用できない場合の例です。この場合、1 つ前のフル・バックアップ 1 と、増分バックアップ 4 、差分バックアップ 5、6、7 をリストアした後に、トランザクション・ログをロールフォワードします。
(バックアップは、1、2、3、… 9、A、B、C の順番で取得)


図 1. 使用するバックアップの選択


Appendix B: バックアップ・ファイルの命名規則

バックアップ・イメージのファイル名は、複数のエレメントを連結してピリオドで区切ったものになります。

Db2 9.7 以前
DB_alias.Type.Inst_name.NODEnnnn.CATNnnnn.timestamp.Seq_num
例)
SAMPLE.0.v97fp8.NODE0000.CATN0000.20151126174324.001

Db2 10.1以降:
DB_alias.Type.Inst_name.DBPARTnnn.timestamp.Seq_num
例)
STAFF.0.DB201.DBPART000.19950922120112.001
DB_alias: データベース名
Type: バックアップ操作のタイプ。 0 は全データベース・レベルのバックアップ、 3 は表スペース・レベルのバックアップ、 4 は LOAD...COPY TO コマンドによって生成されたバックアップ・イメージ
Inst_name: DB2INSTANCE 環境変数から取られる 1 から 8 文字の現行インスタンス名。
DBPARTnnn、NODEnnnn: DBPART+データベース・パーティション番号。単一パーティション・データベース環境では、この値は常に NODE0000 です。
CATNnnnn: カタログ・パーティション番号。単一パーティション・データベース環境では、この値は常に CATN0000 です。
timestamp: タイム・スタンプ。バックアップ操作が実行された日付と時刻を 14 文字で表記したもの。 タイム・スタンプの形式は yyyymmddhhnnss です。
Seq_num: シーケンス番号。 ファイル拡張子として使用する 3 桁の番号。


関連情報
[Db2] パスポート・アドバンテージによく寄せられる質問
[Db2] RESTORE DATABASE コマンドの停止方法
[Db2] BACKUP DATABASE コマンドによるバックアップを停止する方法
[Db2] ROLLFORWARD DATABASE によるロールフォワードを停止する方法
[Db2] リストア・ペンディングの回復方法
 

お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PmaAAE","label":"Recovery-\u003EBackup"},{"code":"a8m500000008PmdAAE","label":"Recovery-\u003ERestore"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
23 August 2023

UID

swg21980131