0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Db2uBackup / Db2uRestore による Db2バックアップ・リストア

Posted at

はじめに

OpenShift/Kubernetes環境でDb2を動かすには、マイクロサービスとして開発される、k8s環境専用のDb2製品を導入します。
このDb2は、Db2 for Red Hat OpenShift and Kubernetes、別名Db2Uとも呼ばれます。
Db2として公式の Kubernetes Operator が提供され、導入・バックアップリストアのためのカスタムリソースが利用できます。

Db2 for OpenShift のバックアップには、いくつかの方法が提供されます。

カスタムリソース Db2uBackup, Db2uRestoreは、OPC WebコンソールからDb2のバックアップ・リストアを実施するためのインターフェースを提供してくれるものです。
GUI画面でバックアップ、リストアそれぞれの詳細なオプションを指定することができます。
裏では、Db2 BACKUP DATABASE コマンド、RESTORE DATABASE コマンドが実行されます。

まだテクニカルプレビュー扱いのためか、Db2製品マニュアルにはこの機能は登場しません。
しかしGUI画面で作業を進められるため、直感的に使うことができます。

環境

  • Red Hat OpenShift Kubernetes Service (ROKS) 上に Db2 for RHOS and k8s をデプロイ
コンポーネント バージョン
OpenShift 4.10.52
OpenShift Data Foundation odf-operator.v4.10.9
Db2 for OpenShift s11.5.8.0-cn2

参考:Db2マニュアル Db2 for RHOS and K8s > 11.5.8 > Installing Db2

バックアップ・リストア手順

全体の流れ

以下の流れで取得します。
バックアップを取得した後、データの一部を削除します。(ユーザミスによりデータを消し込んでしまった)
その後、リストアにより、データが復元され元の状態に戻ったことを確認します。

  1. 検証開始前のデータ内容確認
  2. Db2uBackup API実行(バックアップ取得)
  3. バックアップ取得後のデータ編集
  4. Db2uRestore API実行(リストア)
  5. リストア後のデータ内容確認

Step1. 検証開始前のデータ内容確認

T1表に3行格納した状態で開始します

[db2inst1@c-db2ucluster-4-db2u-0 - Db2U db2inst1]$ date ; db2 "select * from t1"
Wed Jun  7 07:37:33 UTC 2023

C1          C2
----------- --------------------------------
          1 test data1
          2 test data2
          3 test data3

  3 record(s) selected.

[db2inst1@c-db2ucluster-4-db2u-0 - Db2U db2inst1]$

Step2. Db2uBackup API実行(バックアップ取得)

(1)バックアップ取得

OCP Webコンソールを開き、「Operator」>「インストール済みのOperator」 の一覧から、「IBM Db2」(Db2 for RHOS and k8s の Operator) をクリックします

image.png

「Db2u Backup」APIの「インスタンスの作成」をクリックします
image.png

画面右端にある「Db2uBackupの作成」を押下します
image.png

YAMLビューが開きます。
入力項目を把握するためフォームビューに切り替えます。
image.png

フォームビューで必要な設定項目を編集し「作成」を押下します。

項目名 概要
名前 取得するバックアップに付与する名前
Db2uName バックアップ取得対象のDb2uの名称
(Db2uCluster OR Db2uInstanceのデプロイ名)
Db Name バックアップ取得対象のデータベース名
(デフォルトではBLUDB)
Backup Type バックアップ種別 [online|offline|incremental]

(入力後の画面例)
image.png

バックアップ取得のステータスは、Db2u Operator画面「Db2u Backup」タブで確認することができます。

  • バックアップ取得中は、最終更新「進行中」と出力されます。
    image.png

  • バックアップ取得完了すると、ステータス「Completed」と変わります。
    image.png

この画面(Db2u Backupタブ)からリストアすることはできません。
Db2uBackupオブジェクトの端にある三点メニューから実施できるのは、編集と削除のみです。
image.png

####(2)バックアップ取得確認

Db2uBackup API の呼び出しによって、Db2 BACKUPコマンドが実行されていることを確認します。

Db2u Podにログインします

# oc rsh c-db2ucluster-4-db2u-0 bash
Defaulted container "db2u" out of: db2u, init-labels (init), init-kernel (init)
[db2uadm@c-db2ucluster-4-db2u-0 /]$ su - db2inst1
Last login: Thu Jul 27 16:11:38 UTC 2023

Db2uのデフォルトのバックアップイメージ配置先ディレクトリに移動し、バックアップ・イメージが作成されていることを確認します

[db2inst1@c-db2ucluster-4-db2u-0 - Db2U backup_off_1]$ pwd
/mnt/backup/SAMPLEDB/db2ubackup-4-1/backup_off_1
[db2inst1@c-db2ucluster-4-db2u-0 - Db2U backup_off_1]$ ls -la
total 557224
drwxrwxr-x. 2 db2inst1 db2iadm1         1 Jun  7 07:32 .
drwxr-xr-x. 4 db2inst1 db2iadm1         2 Jun  7 07:31 ..
-rw-rw----. 1 db2inst1 db2iadm1 570597376 Jun  7 07:32 SAMPLEDB.0.db2inst1.DBPART000.20230607073217.001
[db2inst1@c-db2ucluster-4-db2u-0 - Db2U backup_off_1]$

db2ckbkpコマンドを利用し、Db2 BACKUPコマンドにより作成されたバックアップ・イメージであること、バックアップ・イメージの状態に問題がないことを確認します。

[db2inst1@c-db2ucluster-4-db2u-0 - Db2U backup_off_1]$ db2ckbkp ./SAMPLEDB.0.db2inst1.DBPART000.20230607073217.001

[1] Buffers processed:  ###################################

Image Verification Complete - successful.

-h オプションを付与して再度db2ckbkpコマンドを実行し、バックアップ取得対象DB名や取得時刻、Db2バージョンなどの詳細情報も確認します。

[db2inst1@c-db2ucluster-4-db2u-0 - Db2U backup_off_1]$ db2ckbkp -h ./SAMPLEDB.0.db2inst1.DBPART000.20230607073217.001


=====================
MEDIA HEADER REACHED:
=====================
        Server Database Name           -- SAMPLEDB
        Server Database Alias          -- SAMPLEDB
        Client Database Alias          -- SAMPLEDB
        Timestamp                      -- 20230607073217
        Database Partition Number      -- 0
        Instance                       -- db2inst1
        Database Configuration Type    -- 0 (Non-shared data)
        Sequence Number                -- 1
        Database Member ID             -- 0
        Release ID                     -- 0x1500 (DB2 v11.5.8.0)
        AL version                     -- V:11 R:5 M:8 F:0 I:0 SB:0
        Database Seed                  -- 0xCD95C324
        DB Comment's Codepage (Volume) -- 0
        DB Comment (Volume)            --
        DB Comment's Codepage (System) -- 0
        DB Comment (System)            --
        Authentication Value           -- 255 (Not specified)
        Backup Mode                    -- 0 (Offline)
        Includes Logs                  -- 0 (No)
        Compression                    -- 2 (Encrypted)
        Backup Type                    -- 0 (Database-level)
        Backup Granularity             -- 0 (Non-incremental)
        Merged Backup Image            -- 0 (No)
        Status Flags                   -- 0x1021
                                          Consistent across all members
                                          LOGARCHMETH1 is set
                                          Database uses default primary log path
        System Catalogs in this image  -- 1 (Yes)
        Catalog Partition Number       -- 0
        DB Codeset                     -- UTF-8
        DB Territory                   -- JP
        LogID                          -- 1686015744
        LogPath                        -- Default
        Backup Buffer Size             -- 16781312 (4097 4K pages)
        Number of Sessions             -- 1
        Platform                       -- 0x1E (Linux-x86-64)
        Encrypt Info Flags             -- 0x1
                                          Source DB was encrypted

 The proper image file name would be:
SAMPLEDB.0.db2inst1.DBPART000.20230607073217.001


[1] Buffers processed:  ###################################

Image Verification Complete - successful.

[db2inst1@c-db2ucluster-4-db2u-0 - Db2U backup_off_1]$

想定通り、Db2のバックアップが取得されていることが確認できました。

Step3. バックアップ取得後のデータ編集

T1表からレコードを1行削除します(→元々3行だったが2行になった)

[db2inst1@c-db2ucluster-4-db2u-0 - Db2U db2inst1]$ date ; db2 "delete from t1 where c1=3"
Wed Jun  7 10:32:52 UTC 2023
DB20000I  The SQL command completed successfully.
[db2inst1@c-db2ucluster-4-db2u-0 - Db2U db2inst1]$ date ; db2 "select * from t1"
Wed Jun  7 10:32:55 UTC 2023

C1          C2
----------- --------------------------------
          1 test data1
          2 test data2

  2 record(s) selected.

[db2inst1@c-db2ucluster-4-db2u-0 - Db2U db2inst1]$

Step4. Db2uRestore API実行(リストア)

OCP Webコンソールよりリストアを行います。

Db2 Operator の詳細画面から「Db2u Restore」>「インスタンスの作成」をクリックします
image.png

「Db2uRestoreの作成」ボタンを押下します
image.png

リストアにあたり最低限必要となる設定項目を指定し「作成」を押下します。

項目名 概要
名前 今回実施するリストア処理につける名前
Db2uName リストア実施対象のDb2uの名称
(Db2uCluster OR Db2uInstanceのデプロイ名)
DbuBackup リストアを行うDb2uBackupの名称

(入力後の画面例)
image.png

リストア処理中は、最終更新の列に「進行中」と表示されます
image.png

リストアが完了するとステータス列が「Complete」に変わります
image.png

これでリストアが完了しました。

Step5. リストア後のデータ内容確認

T1表のデータを確認し、リストアができていることを確認します

[db2inst1@c-db2ucluster-4-db2u-0 - Db2U db2inst1]$ date ; db2 "select * from t1"
Wed Jun  7 11:08:10 UTC 2023

C1          C2
----------- --------------------------------
          1 test data1
          2 test data2
          3 test data3

  3 record(s) selected.

[db2inst1@c-db2ucluster-4-db2u-0 - Db2U db2inst1]$

元々3行格納されていたT1表からバックアップ取得後に1行削除し、2行になっていました。
リストア完了後に確認すると、3行に戻っています。
バックアップ取得時点のデータに戻ったことが確認できました。

補足

Db2uBackup / Db2uRestore で選択可能なオプション

Db2U 11.5.8-cn2時点ではまだサポートがありませんが、ロールフォワード含め以下のようなオプションも選択可能になりそうです。

  • 表スペース単位バックアップリストア
  • スキーマ単位のバックアップリストア
  • リストアオプション指定(End-of-Backup / PIT / End-of-logs)
  • バックアップ取得先指定(現在はDiskのみ、他オプション不明)

バックアップ・リストア時のYaml

db2ubackupによるバックアップ取得
apiVersion: db2ubnr.databases.ibm.com/v1alpha1
kind: Db2uBackup
metadata:
  name: db2ubackup-4-1
  namespace: db2u-1
spec:
  databaseBackup:
    backupTarget:
      vendor: disk
    dbName: sampledb
    type: offline
  db2uName: db2ucluster-4
db2urestoreによるリストア
apiVersion: db2ubnr.databases.ibm.com/v1alpha1
kind: Db2uRestore
metadata:
  name: db2urestore-4-1
  namespace: db2u-1
spec:
  db2uBackup: db2ubackup-4-1
  db2uName: db2ucluster-4
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?