1
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 3 years have passed since last update.

Db2のバックアップをIBM Cloud Object Storageに取得する

Last updated at Posted at 2021-10-11

目的

最近のDb2はバックアップをS3互換のオブジェクトストレージに取得できるようになっています。当然IBM Cloud Object Storage(ICOS)も使えますが、少しわかりにくいところがあったため、整理します。

手順

ローカルキーストアの作成

ICOSにアクセスするためのシークレットを保管するために必要です。

$ gsk8capicmd_64 -keydb -create -db /home/teruq/var/db2/keystore/local-keystore.p12 -pw ******** -type pkcs12 -stash

$ ls -l
-rw------- 1 teruq teruq 1392 10月 11 11:08 local-keystore.p12
-rw------- 1 teruq teruq  193 10月 11 11:08 local-keystore.sth

DBM構成パラメータに設定します。インスタンスの再起動が必要です。

$ db2 update dbm cfg using keystore_location /home/teruq/var/db2/keystore/local-keystore.p12 keystore_type pkcs12
DB20000I  UPDATE DATABASE MANAGER CONFIGURATION
コマンドが正常に完了しました。
SQL1362W  即時変更のためにサブミットされた 1
つ以上のパラメーターが動的に変更されませんでした。
クライアントの変更は、次回のアプリケーション始動時、
または TERMINATE
コマンドが発行されるまで有効になりません。 次の DB2START
コマンドまで、サーバーの変更は有効になりません。

$ db2 get dbm cfg | grep -i keystore_
 鍵ストア・タイプ                           (KEYSTORE_TYPE) = PKCS12
 鍵ストアのロケーション                   (KEYSTORE_LOCATION) = /home/teruq/var/db2/keystore/local-keystore.p12

$ db2stop force; db2start
2021-10-11 11:13:20     0   0   SQL1064N  DB2STOP の処理が正常に終了しました。
SQL1064N  DB2STOP の処理が正常に終了しました。
10/11/2021 11:13:23     0   0   SQL1063N  DB2START の処理が正常に終了しました。
SQL1063N  DB2START の処理が正常に終了しました。

ストレージアクセスのカタログ

ICOSの接続情報をストレージアクセスとしてカタログします。ポイントは、vendors3を指定することと、serverにICOSのエンドポイントのアドレスを指定することです。また、バケット名を指定することもしないこともできます。

# バケット名指定なし
$ db2 catalog storage access alias icos-with-bucket vendor s3 server s3.jp-tok.cloud-object-storage.appdomain.cloud user ${アクセスキーID} password ${シークレットアクセスキー}

# バケット名指定あり
$ db2 catalog storage access alias icos-with-bucket vendor s3 server s3.jp-tok.cloud-object-storage.appdomain.cloud user ${アクセスキーID} password ${シークレットアクセスキー} container ${バケット名}

バックアップの取得

ストレージアクセスによって書き方が異なります。ストレージアクセスでバケット名を指定している場合は、db2remote://${ストレージアクセス名}//${プレフィックス}のように//になるところがポイントです。

# ストレージアクセスでバケット名指定なし
$ db2 backup db sample to db2remote://icos-without-bucket/${バケット名}/db2/20211011

# ストレージアクセスでバケット名指定あり
$ db2 backup db sample to db2remote://icos-with-bucket//db2/20211011

ICOS上は次のようにバックアップが保管されています。

image.png

リストア

もちろんICOSからのリストアも可能です。

# ストレージアクセスでバケット名指定なし
$ db2 restore db sample from db2remote://icos-without-bucket/${バケット名}/db2/20211011/ taken at 20211011114137

# ストレージアクセスでバケット名指定あり
$ db2 restore db sample from db2remote://icos-with-bucket//db2/20211011/ taken at 20211011114137
1
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
1
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?