はじめに
端末に用意した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
バックアップ取得直後のデータに復元されます。
終わりに
以下記事の中身を実践してみました。
以上、ご参考になれば幸いです。