(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Db2】特定データベースのオンラインバックアップとリストアの流れ

スポンサーリンク

はじめに

端末に用意したDb2環境を利用して

オンラインバックアップコマンドbackupの試し打ちをした際のログです。

環境情報
  • DB2 v11.5
  • CentOS Linux 7 (Core)

事前準備

以下記事で作成したSAMPLEデータベースを対象に行います。

まずはオンラインバックアップを行う上でのログを吐く場所を以下のように設定します。

$ db2 update database configuration for sample using LOGARCHMETH1 'disk:/tmp/onlinebackup/'
DB20000I  The UPDATE DATABASE CONFIGURATION command completed successfully.

設定内容は以下で確認可能。

$ db2 get db cfg for sample | grep LOGARCHMETH
 First log archive method                 (LOGARCHMETH1) = DISK:/tmp/onlinebackup/
 Second log archive method                (LOGARCHMETH2) = OFF

オンラインバックアップ

データベースに操作がある状態で以下コマンドでバックアップファイルを取得します。

$  db2 backup db sample online to /tmp/onlinebackup/ compress include logs

Backup successful. The timestamp for this backup image is : XX

該当のディレクトリには以下のようなファイル群ができています。

$ tree /tmp/onlinebackup/
/tmp/onlinebackup/
|-- SAMPLE.0.db2inst1.DBPART000.XX.001
`-- db2inst1
    `-- SAMPLE
        `-- NODE0000
            `-- LOGSTREAM0000
                `-- C0000001
                    `-- S0000000.LOG

db2inst1ディレクトリ以下はオフラインバックアップには見られないロールフォワード用のログとなります。

データベースを削除

データベースを削除するので、テスト用のデータベースで試してください。

以下手順で接続を切り

  • db2 force application all
  • db2 connect reset
  • db2 deactivate database sample

データベースの実体を削除します。

$ db2 drop database sample
DB20000I  The DROP DATABASE command completed successfully.

データベースの復旧

以下のコマンドで

$ db2 restore db sample from /tmp/onlinebackup/
DB20000I  The RESTORE DATABASE command completed successfully.

データベースを復旧します。

オフラインバックアップではリストアすれば利用はできますがオンラインバックアップではロールフォワードが必要となります。

$ db2 connect to sample
SQL1117N  A connection to or activation of database "SAMPLE" cannot be made
because of ROLL-FORWARD PENDING.  SQLSTATE=57019

よって以下コマンドでロールフォワードを実行すれば

$ db2 rollforward database sample to end of backup and complete
...
DB20000I  The ROLLFORWARD command completed successfully.

データベースに接続が可能となり

$ db2 connect to sample
   Database Connection Information
 Database server        = DB2/LINUXX8664 11.5.0.0
 SQL authorization ID   = DB2INST1
 Local database alias   = SAMPLE

バックアップ取得直後のデータに復元されます。

終わりに

以下記事の中身を実践してみました。

以上、ご参考になれば幸いです。