Question & Answer
Question
データベースの増分バックアップと差分バックアップがいくつかあります。どのバックアップ・ファイルをどの順序でリストアし、ロールフォワードすればよいのでしょうか。
Answer
- ここでは、シングル・ノードのデータベースをバックアップ・ファイルからリストアするケースを扱います。
- 増分・差分バックアップを使用したリストアの概要については、Appendix A を参照してください。
- 増分・差分バックアップのリストア
状況に合わせて、下記の A から E のいずれかの方法で増分および差分バックアップをリストアします。
【リストア方法の概要と制限】- RESTORE コマンドの INCREMENTAL AUTOMATIC オプションを使用する方法
概要
指定した増分もしくは差分バックアップと、その前にリストアが必要なフル・バックアップ以降のバックアップを全て自動的にリストアします。
制限
INCREMENTAL AUTOMATIC の使用には一部制限があります。詳細はマニュアルの 自動増分リストアの制限 をご確認ください。
- db2ckrst コマンドを使用する方法
概要
既存のデータベースのバックアップ履歴をもとに、 RESTORE コマンドのリストを自動生成し、マニュアルで実行します。
上記の方法 A が使用できない場合に使用します。
制限
既存のデータベースが存在し、バックアップ履歴が存在している必要があります。※
※ バックアップ履歴は、db2 LIST HISTORY BACKUP ALL FOR {database_name} コマンドで確認できます。
- LIST HISTORY BACKUP 出力 (バックアップ履歴) を使用する方法
概要
既存のデータベースのバックアップ履歴をもとに、必要なバックアップとリストア順序を確認し、RESTORE コマンドをマニュアルで組み立て、実行します。
上記の方法 A、B が使用できない場合に使用します。
制限
データベースのバックアップ履歴が必要です。※
※ 既存のデータベースが存在する場合は、db2 LIST HISTORY BACKUP ALL FOR {database_name} コマンドで確認できます。
- db2ckbkp コマンドを使用する方法
概要
バックアップ・ファイルに含まれる情報をもとに必要なバックアップとリストア順序を確認し、RESTORE コマンドをマニュアルで組み立て、実行します。
上記の方法 A、B が使用できない場合に使用します。
制限
制限は特にありません。
- db2diag.log を使用する方法
概要
db2diag.log に含まれる情報をもとに必要なバックアップと RESTORE 順序を確認し、RESTORE コマンドをマニュアルで組み立て、実行します。
上記の方法 A、B、C、D が使用できない場合に使用します。
制限
制限は特にありません。
【リストア方法の詳細】
この文書では次のコマンド構文規則を使用します。
[xxx] : xxx はオプションであることを示します。
{yyy} : yyy は必須であることを示します。
[xxx|yyy] : xxx もしくは yyy のいずれかを指定することができます。
[xxx {yyy}] : xxx を指定する場合、 yyy の指定は必須です。
- restore コマンドの incremental automatic オプションを使用する方法
次のコマンドは指定したバックアップ・タイムスタンプのバックアップ、およびこのバックアップのリストアに必要な他の全てのバックアップを自動的にリストアします。-
db2 restore db {database_name} incremental automatic [from {backup_file_path}] taken at {yyyymmddHHMMSS} [logtarget {overflow_log_path}]
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 コマンドが正常に完了しました。
-
- 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}]
オプション logtarget {overflow_log_path} は、最後のバックアップがオンライン・バックアップの場合にのみ指定し、指定するのは最後のリストア実行時のみです。
途中のバックアップがオンライン・バックアップであっても、 最後のバックアップがオンライン・バックアップで無い限り logtarget {overflow_log_path} を指定する必要はありません。
その他のオプションについての解説は上記「A. restore コマンドの incremental automatic オプションを使用する方法」をご確認ください。
-
- LIST HISTORY BACKUP 出力 (バックアップ履歴) を使用する方法
C.1 バックアップ履歴の入手
既存のデータベースが存在するインスタンスで次のコマンドを実行します。-
db2 list history backup all for {database_name}
-
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.1 バックアップ記録の確認
バックアップ履歴より、次のバックアップ記録を探します。(オンライン、オフラインを問わず)- (a) 直近のフル・バックアップ
(b) 直近のフル・バックアップ以降に取得した最新の増分バックアップ (増分バックアップが存在する場合)
(c) 直近のフル・バックアップ以降、もしくは最新の増分バックアップ以降 (増分バックアップが存在する場合) に取得した全ての差分バックアップ
C.2.2 バックアップ・ファイルの確認
確認したバックアップのタイムスタンプ (開始時刻) を名前に含むバックアップ・ファイルが存在することを確認します。
バックアップ・ファイルの命名規則については、文末の Appendix B を参照してください。 - (a) 直近のフル・バックアップ
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 {増分バックアップのタイムスタンプ}
オプションを追加の上、実行します。-
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}]
オプション logtarget {overflow_log_path} は、最後のバックアップがオンライン・バックアップの場合にのみ指定し、指定するのは最後のリストア実行時のみです。
途中のバックアップがオンライン・バックアップであっても、 最後のバックアップがオンライン・バックアップでない限り logtarget {overflow_log_path} を指定する必要はありません。
その他のオプションについての解説は、上記「A. restore コマンドの incremental automatic オプションを使用する方法」をご確認ください。
-
- 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}
-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 を参照してください。
- db2ckbkp コマンドを実行して、バックアップ・ファイルより次の情報を確認します。
- db2diag.log を使用する方法
手元にバックアップ・ファイルが無い場合や、db2ckbkp コマンドが使用できない場合に使用します。
E.1 最新のフル・データベース・バックアップの確認- db2diag.log にて、バックアップの開始を示す次のいずれかのメッセージを含むエントリーをログの最後より遡って探します。
該当エントリーのタイムスタンプを書き控えておきます。"MESSAGE : Starting an offline db backup." "MESSAGE : Starting an online db backup."
- フル・バックアップ開始後、同じ TID 番号の出力で、次のメッセージが出力されていることを確認します。
エラーや中断で終わっている場合は 2.1 に戻り、さらに古いバックアップを探します。"MESSAGE : Backup complete."
- ステップ 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."
増分もしくは差分バックアップ開始後、同じ 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.
例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.
$ 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.
ログ・ファイル名を指定しない場合は、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 <== ⑧最新のオンライン差分データベース・バックアップ
- db2diag.log にて、バックアップの開始を示す次のいずれかのメッセージを含むエントリーをログの最後より遡って探します。
- RESTORE コマンドの INCREMENTAL AUTOMATIC オプションを使用する方法
- ロールフォワードの実行
リストア後、データベースはロールフォワード・ペンディング状態に置かれます。
次の要領でロールフォワードを実行します。
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
バックアップ・ファイルからログ・ファイルを抽出し、 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 コマンドが正常に完了しました。
増分バックアップには、直近のフル・バックアップ取得以降の変更が全て含まれます。
差分バックアップには、直近のすべてのタイプのバックアップ以降の変更が含まれます。
よって、リストアするバックアップ・ファイルの順番は次のようになります。
【増分バックアップをリストアし、差分バックアップをリストアしない場合】
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] リストア・ペンディングの回復方法
RESTORE DATABASE コマンド
ROLLFORWARD DATABASE コマンド
LIST HISTORY コマンド
db2ckrst - 増分リストア・イメージ順序の検査コマンド
db2ckbkp - バックアップの検査コマンド
増分バックアップ・イメージからのリストア
自動増分リストアの制限
既存データベースへのリストア
新規データベースへのリストア
テストおよび実稼働環境における増分リストアの使用
ロールフォワードの使用
リカバリー 履歴ファイル
リストア操作の進行状況をモニターする
ロールフォワード操作のモニター
ROLLFORWARD DATABASE コマンド
LIST HISTORY コマンド
db2ckrst - 増分リストア・イメージ順序の検査コマンド
db2ckbkp - バックアップの検査コマンド
増分バックアップ・イメージからのリストア
自動増分リストアの制限
既存データベースへのリストア
新規データベースへのリストア
テストおよび実稼働環境における増分リストアの使用
ロールフォワードの使用
リカバリー 履歴ファイル
リストア操作の進行状況をモニターする
ロールフォワード操作のモニター
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと 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"}]
Was this topic helpful?
Document Information
Modified date:
23 August 2023
UID
swg21980131