Amazon RDS for Db2:  S3経由のバックアップ/リストアでデータ移行

Amazon RDS for Db2は既存環境がLinux上のDb2 11.1 もしくはDb2 11.5 の場合は既存バックアップイメージからのリストアが利用可能です。
当記事ではLinux上のDb2 11.5からS3に直接バックアップファイルを作成し、Amazon RDS for Db2 データベースのテーブルにリストアする方法を説明します。

公式ドキュメント[Linux ベース Db2 データベースのほぼゼロのダウンタイムでの移行](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/db2-near-zero-downtime-migration.html)の内容に基づいています。



# 前提
- 「[Amazon RDS for Db2: Amazon S3 にデータファイルを保存するための設定](https://qiita.com/nishikyon/items/e4f6d2113fdb6bf07777)」設定済み
- バックアップイメージを置く Amazon S3 バケットがロード先RDS for Db2 DB インスタンスと同じリージョンに作成済み

# 事前準備(オプション)

既存のDb2サーバーからS3に接続可能とは限らないのでこちらは必須ではないです。
- 「Db2 Storage Access Alias を AWS S3に設定」を行わない場合はローカルストレージにバックアップイメージを作成し、可能な方法でS3にバックアップイメージをコピーしてください。
- 「アーカイブ・ログの保管先をS3に設定」を行わない場合はローカルストレージから可能な方法でS3にアーカイブログをコピーしてください。

## 1. Db2 Storage Access Aliasをバックアップイメージを置くAmazon S3で作成

「[Db2 Storage Access Alias を AWS S3に設定してバックアップイメージ およびアーカイブログをS3に直接置けるようにする](https://qiita.com/nishikyon/private/a2d19e0b0f7edd33ed70)」を参照の上、Db2 Storage Access Aliasをバックアップイメージを置くAmazon S3で作成してください。　
ここではリンク先実行例にある`awss3jp`というDb2 Storage Access Aliasを作成している前提で進めます。

:::note
この設定は必須ではないので手動コピーでも問題ありません。
:::

## 2. アーカイブ・ログの保管先をS3に設定

[「Db2 Storage Access Alias を AWS S3に設定してバックアップイメージ およびアーカイブログをS3に直接置けるようにする」の「3.　Storage Access Aliasの使用例」](https://qiita.com/nishikyon/items/a2d19e0b0f7edd33ed70#3storage-access-alias%E3%81%AE%E4%BD%BF%E7%94%A8%E4%BE%8B)」を参照の上、アーカイブ・ログの保管先をS3に設定してください。

ここではリンク先実行例にある`DB2REMOTE://awss3jp/japan-db2-01/sample1_archived_logs/`という保管先に設定している前提で進めます。

:::note
この設定は必須ではないので手動コピーでも問題ありません。
:::
:::note warn
アーカイブ・ログの保管先としてS3を指定した場合、PRUNE HISTORY コマンドに AND DELETE パラメーターを指定する方法やPRUNE LOGFILEコマンドでの削除できないようなので、運用に注意お願いします。

:::

# S3経由のバックアップ/リストアでデータ移行
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/b3b647bf-a03a-6e5d-88ed-ee7276a6638b.png)


環境：
オンプレミス側: Linux
 - Db2 v11.5
 - 移行元DB: sample1
 - コマンド実行はDb2サーバー上
 - 事前準備(オプション)設定済み

AWS:
- Amazon RDS for Db2 インスタンスのみ作成済み(データベース名を指定しないで作成する。DBは作成していない状態)
- ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/b493401c-662d-a46f-3b9c-dd068e1ccc5b.png)


## 1. S3にバックアップ作成(オフライン)
オンプレミス側: LinuxのDb2サーバー上で操作をする前提のコマンドです。
今回は事前準備実施してS3に直接バックアップイメージを書き込みます。
移行先RDS Db2と同じリージョンにあるs3サーバー`s3.ap-northeast-1.amazonaws.com`に対して、`awss3jp` というDb2 Storage Access Aliasを設定済みです。

Db2 Storage Access Alias確認:
```
$ db2 list storage access

 Node Directory

Node 1 entry:

ALIAS=awss3jp
VENDOR=S3
SERVER=s3.ap-northeast-1.amazonaws.com
USERID=****
CONTAINER=
OBJECT=
DBUSER=
DBGROUP=SYSADM

 Number of entries in the directory = 1

DB20000I  The LIST STORAGE ACCESS command completed successfully.
[db2inst1@itzvsi-2700029rtw-650d2mbz ~]$
```

オフラインバックアップを上記`awss3jp` というDb2 Storage Access Aliasで示される`s3.ap-northeast-1.amazonaws.com`上の`japan-db2-01`というバケットの`offline_backup/20241009`というPATHに作成する場合、以下のコマンドを実行します:
```
db2 backup database sample1 to DB2REMOTE://awss3jp/japan-db2-01/offline_backup/20241009
```
出力例:
```
Backup successful. The timestamp for this backup image is : 20241009023233
```
S3を確認してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/9522d8f6-60e7-6082-4587-4b3949b17a03.png)
バックアップイメージが作成されています。
このファイル名の拡張子なしのもの(.より左側)、ここでは`SAMPLE1.0.db2inst1.DBPART000.20241009023233`をリストアで使います。

## 2. S3のオフラインバックアップイメージからリストア
では1で作成したバックアップイメージをリストアしてみます。
コマンドの実行はDb2クライアントCLIから行います。

事前準備としてターゲットのRDS for Db2のRDSADMINデータベースのカタログが必要です。ターゲットのRDS for Db2はDBはインスタスのみで作成しますが、作成時に管理用のDB RDSADMINが作成されています。

こちらを参考にカタログを作成してください:[IBM Db2 CLP を使用して Amazon RDS for Db2 DB インスタンスに接続する](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/db2-connecting-with-clp-client.html)

 ここでは ターゲットのRDS for Db2のRDSADMINデータベースは`RDSADM1`としてカタログされている前提とします。

 ### 2-1. ターゲットのRDS for Db2のRDSADMINデータベースへ接続
 ユーザーIDはDBインスタンス作成時に指定したマスターユーザー名とマスターパスワードを使用します。
 ```
 db2 connect to rdsadm1 user admin using yyyyyyyyyyy
 ```
### 2-2. rdsadmin.restore_database を呼び出して、バックアップをリストア
コマンドの詳細については、「[rdsadmin.restore_database](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/db2-sp-managing-databases.html#db2-sp-restore-database)」を参照してください。

- ターゲットのDB名: `rdssamp1`
- バックアップイメージのあるS3バケット: `japan-db2-01`
- バックアップイメージとしてマッチングさせる文字列(PATH/ + ファイル名の拡張子なしのもの): `offline_backup/20241009/SAMPLE1.0.db2inst1.DBPART000.20241009023233`
- データベースバックアップイメージのタイムスタンプ(バックアップイメージに含まれています): `20241009023233`

の場合、以下のコマンドになります。

```
db2 "call rdsadmin.restore_database( \
    ?, \
    'rdssamp1',  \
    'japan-db2-01',  \
    'offline_backup/20241009/SAMPLE1.0.db2inst1.DBPART000.20241009023233',  \
    20241009023233,  \
    'OFFLINE')"
```

参考出力:
```

  Value of output parameters
  --------------------------
  Parameter Name  : ERR_MESSAGE
  Parameter Value : -


  Result set 1
  --------------

  TASK_ID              LIFECYLE                                           TASK_TYPE                                          CREATED_AT                 LAST_UPDATED_AT            S3_BUCKET_NAME                                                      S3_PREFIX                                                           TAKEN_AT
  -------------------- -------------------------------------------------- -------------------------------------------------- -------------------------- -------------------------- ------------------------------------------------------------------- ------------------------------------------------------------------- -------------------------------------------------------------------
                   205 CREATED                                            RESTORE_DB                                         2024-10-09-03.35.48.706242 2024-10-09-03.35.48.706242 japan-db2-01                                                        offline_backup/20241009/SAMPLE1.0.db2inst1.DBPART000.20241009023233 20241009023233

  1 record(s) selected.

  Return Status = 0
```
`Return Status = 0`はコマンドとして受け入れられたという意味でコマンド実行が成功したという意味ではありません。
上記出力からTASK_IDの値を取得しておきます。この場合は`205`です。

コマンドの結果は以下のSQLで取得します。最後の TASK_IDの値を取得したTASK_IDに変更してください。
```
db2 "select CREATED_AT, LAST_UPDATED_AT,task_id, task_type, database_name, lifecycle,
    varchar(bson_to_json(task_input_params), 500) as task_params,
    cast(task_output as varchar(500)) as task_output
    from table(rdsadmin.get_task_status(null,null,'RESTORE_DB')) 
    where TASK_ID=205"
```

出力例:
```
CREATED_AT                 LAST_UPDATED_AT            TASK_ID              TASK_TYPE                                          DATABASE_NAME   LIFECYCLE                                          TASK_PARAMS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TASK_OUTPUT
-------------------------- -------------------------- -------------------- -------------------------------------------------- --------------- -------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2024-10-09-03.20.36.306343 2024-10-09-03.23.46.653840                  203 RESTORE_DB                                         SAMPLE1         SUCCESS                                            { "S3_BUCKET_NAME" : "japan-db2-01", "S3_PREFIX" : "offline_backup/20241009/SAMPLE1.0.db2inst1.DBPART000.20241009023233", "TAKEN_AT" : "20241009023233", "BACKUP_TYPE" : "OFFLINE" }                                                                                                                                                                                                                                                                                                                                 2024-10-09T03:21:03.632Z Task execution has started.
2024-10-09T03:21:06.210Z Download starting.
2024-10-09T03:21:12.450Z Download complete. Restore starting.
2024-10-09T03:23:46.343Z Task Completed Successfully


  1 record(s) selected.
```
LIFECYCLEが
`ERROR`であればエラーで終了
`IN_PROGRESS`であれば実行中
`SUCCESS`であればコマンド成功で完了
です。

無事成功したら、DBに接続して、中身を確認してみましょう。
DB2 CLIから接続するにはターゲットのRDS for Db2のリストア先データベースのカタログが必要です。
こちらを参考にカタログを作成してください:[IBM Db2 CLP を使用して Amazon RDS for Db2 DB インスタンスに接続する](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/db2-connecting-with-clp-client.html)

ここでは`RDSSAMP1`とカタログしました。
ターゲットのRDS for Db2 `RDSSAMP1`に接続
```
db2 connect to RDSSAMP1 user admin using yyyyyyyyyyy
```

テーブルをリストしてみます：（スキーマは元の`db2inst1`です）
```
 db2 list tables for schema db2inst1
```
参考出力：
```
$ db2 list tables for schema db2inst1

Table/View                      Schema          Type  Creation time
------------------------------- --------------- ----- --------------------------
ACT                             DB2INST1        T     2024-09-17-10.05.49.134301
ADEFUSR                         DB2INST1        S     2024-09-17-10.05.50.022658
CL_SCHED                        DB2INST1        T     2024-09-17-10.05.48.295413
DEPARTMENT                      DB2INST1        T     2024-09-17-10.05.48.339138
DEPT                            DB2INST1        A     2024-09-17-10.05.48.453461
EMP                             DB2INST1        A     2024-09-17-10.05.48.545697
EMPACT                          DB2INST1        A     2024-09-17-10.05.49.133279
EMPLOYEE                        DB2INST1        T     2024-09-17-10.05.48.454293
EMPMDC                          DB2INST1        T     2024-09-17-10.05.55.349964
EMPPROJACT                      DB2INST1        T     2024-09-17-10.05.49.093069
EMP_ACT                         DB2INST1        A     2024-09-17-10.05.49.133809
EMP_PHOTO                       DB2INST1        T     2024-09-17-10.05.48.546207
EMP_RESUME                      DB2INST1        T     2024-09-17-10.05.48.713102
IN_TRAY                         DB2INST1        T     2024-09-17-10.05.49.227138
ORG                             DB2INST1        T     2024-09-17-10.05.49.257415
PERFTEST                        DB2INST1        T     2024-10-07-14.06.08.701507
PROJ                            DB2INST1        A     2024-09-17-10.05.49.006930
PROJACT                         DB2INST1        T     2024-09-17-10.05.49.007413
PROJECT                         DB2INST1        T     2024-09-17-10.05.48.890598
SALES                           DB2INST1        T     2024-09-17-10.05.49.340601
STAFF                           DB2INST1        T     2024-09-17-10.05.49.289431
STAFFG                          DB2INST1        T     2024-09-17-10.05.49.891185
TEST                            DB2INST1        T     2024-10-03-06.22.53.927932
VACT                            DB2INST1        V     2024-09-17-10.05.49.389046
VASTRDE1                        DB2INST1        V     2024-09-17-10.05.49.401878
VASTRDE2                        DB2INST1        V     2024-09-17-10.05.49.405319
VDEPMG1                         DB2INST1        V     2024-09-17-10.05.49.396024
VDEPT                           DB2INST1        V     2024-09-17-10.05.49.378165
VEMP                            DB2INST1        V     2024-09-17-10.05.49.384887
VEMPDPT1                        DB2INST1        V     2024-09-17-10.05.49.399129
VEMPLP                          DB2INST1        V     2024-09-17-10.05.49.431258
VEMPPROJACT                     DB2INST1        V     2024-09-17-10.05.49.393687
VFORPLA                         DB2INST1        V     2024-09-17-10.05.49.417970
VHDEPT                          DB2INST1        V     2024-09-17-10.05.49.382708
VPHONE                          DB2INST1        V     2024-09-17-10.05.49.426586
VPROJ                           DB2INST1        V     2024-09-17-10.05.49.386974
VPROJACT                        DB2INST1        V     2024-09-17-10.05.49.391049
VPROJRE1                        DB2INST1        V     2024-09-17-10.05.49.407905
VPSTRDE1                        DB2INST1        V     2024-09-17-10.05.49.411484
VPSTRDE2                        DB2INST1        V     2024-09-17-10.05.49.414664
VSTAFAC1                        DB2INST1        V     2024-09-17-10.05.49.420529
VSTAFAC2                        DB2INST1        V     2024-09-17-10.05.49.423804

  42 record(s) selected.
```
リストア成功したようです(スペースとるので割愛しますが元DBと同じか確認しましょう！)

## 3. S3にバックアップ作成(オンライン)
オンプレミス側: LinuxのDb2サーバー上で操作をする前提のコマンドです。
今回は事前準備実施してS3に直接バックアップイメージを書き込み　かつ　アーカイブログもS3に書き込む設定でやってみます。
移行先RDS Db2と同じリージョンにあるs3サーバー`s3.ap-northeast-1.amazonaws.com`に対して、`awss3jp` というDb2 Storage Access Aliasを設定済みです。

アーカイブログパス確認:
```
db2 get db cfg for SAMPLE1 | grep LOGARCHMETH
```
出力例：LOGARCHMETH1がS3である`DB2REMOTE://awss3jp/japan-db2-01/sample1_archived_logs/`になっています
```
 First log archive method                 (LOGARCHMETH1) = DB2REMOTE://awss3jp/japan-db2-01/sample1_archived_logs/
 Second log archive method                (LOGARCHMETH2) = OFF
```

Db2 Storage Access Alias確認は「1. S3にバックアップ作成(オフライン)」と同じなので省略します。

オンラインバックアップを`awss3jp` というDb2 Storage Access Aliasで示される`s3.ap-northeast-1.amazonaws.com`上の`japan-db2-01`というバケットの`backup/20241009`というPATHに作成する場合、以下のコマンドを実行します:
```
db2 backup database sample1 online to DB2REMOTE://awss3jp/japan-db2-01/backup/20241009 INCLUDE LOGS
```
出力例:
```
Backup successful. The timestamp for this backup image is : 20241009054937
```
S3を確認してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/d0aefc81-ecbb-c391-2e83-486c78f8a662.png)

バックアップイメージが作成されています。
このファイル名の拡張子なしのもの(.より左側)、ここではSAMPLE1.0.db2inst1.DBPART000.20241009054937をリストアで使います。

## 4. S3のオンラインバックアップイメージからリストア & ロール・フォーワード

では1で作成したバックアップイメージをリストアしロール・フォーワードしてみます。
コマンドの実行はDb2クライアントCLIから行います。

事前準備としてオフラインの時と同じくターゲットのRDS for Db2のRDSADMINデータベースのカタログが必要です。

こちらを参考にカタログを作成してください:[IBM Db2 CLP を使用して Amazon RDS for Db2 DB インスタンスに接続する](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/db2-connecting-with-clp-client.html)

 ここでは ターゲットのRDS for Db2のRDSADMINデータベースは`RDSADM2`としてカタログされている前提とします。

 ### 4-1. ターゲットのRDS for Db2のRDSADMINデータベースへ接続
 ユーザーIDはDBインスタンス作成時に指定したマスターユーザー名とマスターパスワードを使用します。
 ```
db2 connect to rdsadm2 user admin using yyyyyyyyyyy
 ```
### 4-2. rdsadmin.restore_database を呼び出して、バックアップをリストア
コマンドの詳細については、「[rdsadmin.restore_database](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/db2-sp-managing-databases.html#db2-sp-restore-database)」を参照してください。

- ターゲットのDB名: `rdssamp2`
- バックアップイメージのあるS3バケット: `japan-db2-01`
- バックアップイメージとしてマッチングさせる文字列(PATH/のファイル名の拡張子なしのもの): `backup/20241009/SAMPLE1.0.db2inst1.DBPART000.20241009054937`
- データベースバックアップイメージのタイムスタンプ(バックアップイメージに含まれています): `20241009054937`

の場合、以下のコマンドになります。

```
db2 "call rdsadmin.restore_database( \
    ?,\
    'rdssamp2', \
    'japan-db2-01', \
    'backup/20241009/SAMPLE1.0.db2inst1.DBPART000.20241009054937', \
    20241009054937, \
    'ONLINE')"
```

参考出力:
```
  Value of output parameters
  --------------------------
  Parameter Name  : ERR_MESSAGE
  Parameter Value : -


  Result set 1
  --------------

  TASK_ID              LIFECYLE                                           TASK_TYPE                                          CREATED_AT                 LAST_UPDATED_AT            S3_BUCKET_NAME                                              S3_PREFIX                                                   TAKEN_AT
  -------------------- -------------------------------------------------- -------------------------------------------------- -------------------------- -------------------------- ----------------------------------------------------------- ----------------------------------------------------------- -----------------------------------------------------------
                     3 CREATED                                            RESTORE_DB                                         2024-10-09-08.22.05.041350 2024-10-09-08.22.05.041350 japan-db2-01                                                backup/20241009/SAMPLE1.0.db2inst1.DBPART000.20241009054937 20241009054937

  1 record(s) selected.

  Return Status = 0
```
オフラインバックアップと同様に`Return Status = 0`はコマンドとして受け入れられたという意味でコマンド実行が成功したという意味ではありません。
同じく上記出力からTASK_IDの値を取得しておきます。この場合は`3`です。

コマンドの結果は以下のSQLで取得します。最後の TASK_IDの値を取得したTASK_IDに変更してください。
```
db2 "select CREATED_AT, LAST_UPDATED_AT,task_id, task_type, database_name, lifecycle,
    varchar(bson_to_json(task_input_params), 500) as task_params,
    cast(task_output as varchar(500)) as task_output
    from table(rdsadmin.get_task_status(null,null,'RESTORE_DB')) 
    where TASK_ID=3"
```

出力例:
```
CREATED_AT                 LAST_UPDATED_AT            TASK_ID              TASK_TYPE                                          DATABASE_NAME   LIFECYCLE                                          TASK_PARAMS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TASK_OUTPUT
-------------------------- -------------------------- -------------------- -------------------------------------------------- --------------- -------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2024-10-09-08.22.05.041350 2024-10-09-08.23.37.166875                    3 RESTORE_DB                                         RDSSAMP2        SUCCESS                                            { "S3_BUCKET_NAME" : "japan-db2-01", "S3_PREFIX" : "backup/20241009/SAMPLE1.0.db2inst1.DBPART000.20241009054937", "TAKEN_AT" : "20241009054937", "BACKUP_TYPE" : "ONLINE" }                                                                                                                                                                                                                                                                                                                                          2024-10-09T08:23:03.985Z Task execution has started.
2024-10-09T08:23:07.107Z Download starting.
2024-10-09T08:23:13.597Z Download complete. Restore starting.
2024-10-09T08:23:36.539Z Task Completed Successfully


  1 record(s) selected.
```

こちらも同じで、LIFECYCLEが
`ERROR`であればエラーで終了
`IN_PROGRESS`であれば実行中
`SUCCESS`であればコマンド成功で完了
です。

### 4-3.(アーカイブログがS3にない場合)ソースサーバーから S3 バケットにアーカイブログをコピー
今回はアーカイブログはS3に配置しているので実施しませんが、ソースサーバーにある場合はS3にコピーしてください。



### 4-4. ロール・フォーワードの実施
rdsadmin.rollforward_database を呼び出して、アーカイブログを適用します。
コマンドの詳細については、「[rdsadmin.rollforward_database](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/db2-sp-managing-databases.html#db2-sp-rollforward-database)」を参照してください。

あらかじめS3のどこにアーカイブファイルがあるのか確認しておいてください。

- ターゲットのDB名: `rdssamp2`
- バックアップイメージのあるS3バケット: `japan-db2-01`
- アーカイブログとしてマッチングさせる文字列(アーカイブファイルのあるPATHでよい): `sample1_archived_logs/db2inst1/SAMPLE1/NODE0000/LOGSTREAM0000/C0000000/`

の場合、以下のコマンドになります。

```
db2 "call rdsadmin.rollforward_database( \
     ?,\
    'rdssamp2',
    'japan-db2-01',\
    'sample1_archived_logs/db2inst1/SAMPLE1/NODE0000/LOGSTREAM0000/C0000000/',\
    'END_OF_LOGS',\
    'TRUE')"
```

出力例：
```
  Value of output parameters
  --------------------------
  Parameter Name  : ERR_MESSAGE
  Parameter Value : -


  Result set 1
  --------------

  TASK_ID              LIFECYLE                                           TASK_TYPE                                          CREATED_AT                 LAST_UPDATED_AT            S3_BUCKET_NAME                                                          S3_PREFIX                                                               ROLLFORWARD_TO_OPT                                                      COMPLETE_ROLLFORWARD
  -------------------- -------------------------------------------------- -------------------------------------------------- -------------------------- -------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -----------------------------------------------------------------------
                     4 CREATED                                            ROLLFORWARD_DB_LOG                                 2024-10-09-08.48.31.668529 2024-10-09-08.48.31.668529 japan-db2-01                                                            sample1_archived_logs/db2inst1/SAMPLE1/NODE0000/LOGSTREAM0000/C0000000/ END_OF_LOGS                                                             TRUE

  1 record(s) selected.

  Return Status = 0
```
コマンドの結果は以下のSQLで取得します。最後の TASK_IDの値を取得したTASK_IDに変更してください。


```
db2 "select CREATED_AT, LAST_UPDATED_AT,task_id, task_type, database_name, lifecycle,
    varchar(bson_to_json(task_input_params), 500) as task_params,
    cast(task_output as varchar(500)) as task_output
    from table(rdsadmin.get_task_status(null,null,'ROLLFORWARD_DB_LOG')) 
    where TASK_ID=4"
```
出力例:
```
CREATED_AT                 LAST_UPDATED_AT            TASK_ID              TASK_TYPE                                          DATABASE_NAME   LIFECYCLE                                          TASK_PARAMS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TASK_OUTPUT
-------------------------- -------------------------- -------------------- -------------------------------------------------- --------------- -------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2024-10-09-08.48.31.668529 2024-10-09-08.52.09.858286                    4 ROLLFORWARD_DB_LOG                                 RDSSAMP2        SUCCESS                                            { "S3_BUCKET_NAME" : "japan-db2-01", "S3_PREFIX" : "sample1_archived_logs/db2inst1/SAMPLE1/NODE0000/LOGSTREAM0000/C0000000/", "ROLLFORWARD_TO_OPT" : "END_OF_LOGS", "COMPLETE_ROLLFORWARD" : "TRUE" }                                                                                                                                                                                                                                                                                                                2024-10-09T08:49:04.823Z Task execution has started.
2024-10-09T08:49:08.283Z Preparing to download
2024-10-09T08:49:30.947Z Perform rollforward
2024-10-09T08:49:37.288Z Completing restoration
2024-10-09T08:52:09.324Z Task Completed Successfully


  1 record(s) selected.

```
こちらも同じで、LIFECYCLEが
`ERROR`であればエラーで終了
`IN_PROGRESS`であれば実行中
`SUCCESS`であればコマンド成功で完了
です。

無事成功したら、DBに接続して、中身を確認してみましょう。
同じくDB2 CLIから接続するにはターゲットのRDS for Db2のリストア先データベースのカタログが必要です。
こちらを参考にカタログを作成してください:[IBM Db2 CLP を使用して Amazon RDS for Db2 DB インスタンスに接続する](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/db2-connecting-with-clp-client.html)

ここでは`RDSSAMP2`とカタログしました。
ターゲットのRDS for Db2 `RDSSAMP2`に接続
```
db2 connect to RDSSAMP2 user admin using yyyyyyyyyyy
```

テーブルをリストしてみます：（スキーマは元の`db2inst1`です）
```
 db2 list tables for schema db2inst1
```
参考出力：
```
Table/View                      Schema          Type  Creation time
------------------------------- --------------- ----- --------------------------
ACT                             DB2INST1        T     2024-09-17-10.05.49.134301
ADEFUSR                         DB2INST1        S     2024-09-17-10.05.50.022658
CL_SCHED                        DB2INST1        T     2024-09-17-10.05.48.295413
DEPARTMENT                      DB2INST1        T     2024-09-17-10.05.48.339138
DEPT                            DB2INST1        A     2024-09-17-10.05.48.453461
EMP                             DB2INST1        A     2024-09-17-10.05.48.545697
EMPACT                          DB2INST1        A     2024-09-17-10.05.49.133279
EMPLOYEE                        DB2INST1        T     2024-09-17-10.05.48.454293
EMPMDC                          DB2INST1        T     2024-09-17-10.05.55.349964
EMPPROJACT                      DB2INST1        T     2024-09-17-10.05.49.093069
EMP_ACT                         DB2INST1        A     2024-09-17-10.05.49.133809
EMP_PHOTO                       DB2INST1        T     2024-09-17-10.05.48.546207
EMP_RESUME                      DB2INST1        T     2024-09-17-10.05.48.713102
IN_TRAY                         DB2INST1        T     2024-09-17-10.05.49.227138
ORG                             DB2INST1        T     2024-09-17-10.05.49.257415
PERFTEST                        DB2INST1        T     2024-10-07-14.06.08.701507
PROJ                            DB2INST1        A     2024-09-17-10.05.49.006930
PROJACT                         DB2INST1        T     2024-09-17-10.05.49.007413
PROJECT                         DB2INST1        T     2024-09-17-10.05.48.890598
SALES                           DB2INST1        T     2024-09-17-10.05.49.340601
STAFF                           DB2INST1        T     2024-09-17-10.05.49.289431
STAFFG                          DB2INST1        T     2024-09-17-10.05.49.891185
TEST                            DB2INST1        T     2024-10-03-06.22.53.927932
VACT                            DB2INST1        V     2024-09-17-10.05.49.389046
VASTRDE1                        DB2INST1        V     2024-09-17-10.05.49.401878
VASTRDE2                        DB2INST1        V     2024-09-17-10.05.49.405319
VDEPMG1                         DB2INST1        V     2024-09-17-10.05.49.396024
VDEPT                           DB2INST1        V     2024-09-17-10.05.49.378165
VEMP                            DB2INST1        V     2024-09-17-10.05.49.384887
VEMPDPT1                        DB2INST1        V     2024-09-17-10.05.49.399129
VEMPLP                          DB2INST1        V     2024-09-17-10.05.49.431258
VEMPPROJACT                     DB2INST1        V     2024-09-17-10.05.49.393687
VFORPLA                         DB2INST1        V     2024-09-17-10.05.49.417970
VHDEPT                          DB2INST1        V     2024-09-17-10.05.49.382708
VPHONE                          DB2INST1        V     2024-09-17-10.05.49.426586
VPROJ                           DB2INST1        V     2024-09-17-10.05.49.386974
VPROJACT                        DB2INST1        V     2024-09-17-10.05.49.391049
VPROJRE1                        DB2INST1        V     2024-09-17-10.05.49.407905
VPSTRDE1                        DB2INST1        V     2024-09-17-10.05.49.411484
VPSTRDE2                        DB2INST1        V     2024-09-17-10.05.49.414664
VSTAFAC1                        DB2INST1        V     2024-09-17-10.05.49.420529
VSTAFAC2                        DB2INST1        V     2024-09-17-10.05.49.423804

  42 record(s) selected.
```
オンラインバックアップでのリストア成功したようです(スペースとるので割愛しますが元DBと同じか確認しましょう！)

以上です。