

# Amazon RDS for Db2 のダウンタイムがほぼゼロの Linux から Linux への移行
<a name="db2-near-zero-downtime-migration"></a>

この移行アプローチでは、 Linux ベース Db2 データベースを単一のセルフマネージド Db2 データベース (ソース) から Amazon RDS for Db2 に移行します。このアプローチにより、アプリケーションまたはユーザーの停止またはダウンタイムが最小限に抑えられるか、まったく発生しません。このアプローチでは、データベースをバックアップし、ログの再生で復元します。これにより、進行中のオペレーションの中断を防ぎ、データベースの高可用性を実現できます。

RDS for Db2 は、ほぼゼロのダウンタイムでの移行を達成できるように、ログの再生による復元を実装しています。このアプローチでは、セルフマネージド Linux ベース Db2 データベースのバックアップを作成し、RDS for Db2 サーバーに復元します。Amazon RDS ストアドプロシージャでは、後続のトランザクションログを適用してデータベースを最新の状態にします。

**Topics**
+ [ほぼゼロのダウンタイムでの移行の制限と推奨事項](#db2-near-zero-downtime-migration-limitations)
+ [データベースを Amazon S3 にバックアップする](#db2-near-zero-downtime-backing-up-database)
+ [デフォルトの自動ストレージグループを作成する](#db2-near-zero-migration-creating-auto-storage-group)
+ [Db2 データベースの移行](#db2-migrating-db2-database)

## ほぼゼロのダウンタイムでの移行の制限と推奨事項
<a name="db2-near-zero-downtime-migration-limitations"></a>

ほぼゼロのダウンタイムでの移行の使用には、次の制限と推奨事項が適用されます。
+ Amazon RDS では、移行のダウンタイムをほぼゼロにするために、オンラインバックアップが必要です。これは、アーカイブされたトランザクションログをアップロードすると、Amazon RDS によってデータベースがロールフォワード保留状態のままになるためです。詳細については、「[Db2 データベースの移行](#db2-migrating-db2-database)」を参照してください。
+ RDS for Db2 DB インスタンスがあるリージョンとは異なる AWS リージョンのAmazon S3 バケットから復元することはできません。
+ Amazon S3 では、S3 バケットにアップロードするファイルのサイズが 5 TB に制限されます。データベースバックアップファイルが 5 TB を超える場合は、バックアップファイルを小さいファイルに分割します。
+ Amazon RDS は、非 fenced 外部ルーチン、増分復元、または Delta 復元をサポートしていません。
+ 暗号化したソースデータベースから復元することはできませんが、暗号化された Amazon RDS DB インスタンスには復元できます。

復元プロセスは、設定によって異なります。

`USE_STREAMING_RESTORE` を `TRUE` に設定すると、Amazon RDS は復元中に S3 バケットから直接バックアップをストリーミングします。ストリーミングはストレージ要件を大幅に削減します。バックアップのサイズまたは元のデータベースのサイズのうち、いずれか大きい方のサイズ以上のストレージスペースをプロビジョニングするだけで済みます。

`USE_STREAMING_RESTORE` を `FALSE` に設定すると、Amazon RDS はまず RDS for Db2 DB インスタンスにバックアップをダウンロードし、次にバックアップを抽出します。抽出には追加のストレージスペースが必要です。バックアップのサイズと元のデータベースのサイズの合計以上のストレージスペースをプロビジョニングする必要があります。

復元されたデータベースの最大サイズは、サポートされているデータベースの最大サイズから、復元プロセス中の一時ストレージに必要なスペースを引いた値に等しくなります。

## データベースを Amazon S3 にバックアップする
<a name="db2-near-zero-downtime-backing-up-database"></a>

Amazon S3 でデータベースをバックアップするには、次の AWS コンポーネントが必要です。
+ **バックアップファイルを保存する Amazon S3 バケット: Amazon RDS に移行するバックアップファイルをアップロードします。Amazon RDS では、移行のダウンタイムをほぼゼロにするために、オンラインバックアップが必要です。S3 バケットが既にある場合はそのバケットを使用できます。S3 バケットがない場合は、「*Amazon S3 ユーザーガイド*」の「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)」を参照してください。
**注記**  
データベースが大きく、S3 バケットへの転送に時間がかかる場合は、 AWS Snow Family デバイスを注文して、AWS にバックアップの実行を依頼できます。ファイルをデバイスにコピーして Snow ファミリーチームに返すと、チームはバックアップしたイメージを S3 バケットに転送します。詳細については、「[AWS Snow Family ドキュメント](https://docs.aws.amazon.com/snowball/)」を参照してください。
+ **S3 バケットにアクセスするための IAM ロール: AWS Identity and Access Management (IAM) ロールが既にある場合は、そのロールを使用できます。ロールがない場合は、「[ステップ 2: IAM ロールを作成して IAM ポリシーをアタッチする](db2-s3-integration.md#db2-creating-iam-role)」を参照してください。
+ **IAM ロールにアタッチされた信頼関係とアクセス許可を持つ IAM ポリシー: 詳細については、「[ステップ 1: IAM ポリシーを作成する](db2-s3-integration.md#db2-creating-iam-policy)」を参照してください。
+ **RDS for Db2 DB インスタンスに追加された IAM ロール: 詳細については、「[ステップ 3: RDS for Db2 DB インスタンスに IAM ロールを追加する](db2-s3-integration.md#db2-adding-iam-role)」を参照してください。

## デフォルトの自動ストレージグループを作成する
<a name="db2-near-zero-migration-creating-auto-storage-group"></a>

ソースデータベースにはデフォルトの自動ストレージグループが必要です。データベースにデフォルトの自動ストレージグループがない場合は、作成する必要があります。

**デフォルトの自動ストレージグループを作成するには**

1. ソースデータベースに接続します。次の例では、*source\$1database* をデータベースの名前に置き換えます。

   ```
   db2 connect to source_database 
   ```

1. 自動ストレージグループを作成し、デフォルトとして設定します。次の例では、*storage\$1path* をストレージグループが配置されている場所への絶対パスに置き換えます。

   ```
   db2 "create stogroup IBMSTOGROUP ON storage_path set as default"
   ```

1. バックエンドプロセスを終了します。

   ```
   db2 terminate
   ```

## Db2 データベースの移行
<a name="db2-migrating-db2-database"></a>

ほぼゼロのダウンタイムでの移行をセットアップしたら、Db2 データベースを Amazon S3 バケットから RDS for Db2 DB インスタンスに移行できます。

**Amazon S3 バケットから RDS for Db2 DB インスタンスへのバックアップファイルのダウンタイムをほぼゼロにするには**

1. ソースデータベースのオンラインバックアップを実行します。詳細については、IBM Db2 ドキュメントの「[BACKUP DATABASE command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-backup-database)」をご参照ください。

1. データベースのバックアップを Amazon S3 バケットにコピーします。Amazon S3 の使用の詳細については、「[Amazon Simple Storage Service ユーザーガイド](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)」を参照してください。

1. RDS for Db2 DB インスタンスの *master\$1username* と *master\$1password* を使用して `rdsadmin` サーバーに接続します。

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. (オプション) データベースが最適な設定で構成されていることを確認するには、[rdsadmin.show\$1configuration](db2-sp-managing-databases.md#db2-sp-show-configuration) を呼び出して次のパラメータの値を確認します。
   + `RESTORE_DATABASE_NUM_BUFFERS`
   + `RESTORE_DATABASE_PARALLELISM`
   + `RESTORE_DATABASE_NUM_MULTI_PATHS`
   + `USE_STREAMING_RESTORE`

   必要に応じて、[rdsadmin.set\$1configuration](db2-sp-managing-databases.md#db2-sp-set-configuration) を使用してこれらの値を変更します。これらのパラメータを適切に設定することで、大量のデータを含むデータベースを復元する際のパフォーマンスが大幅に向上します。ほとんどの移行シナリオでは、ストレージ要件が軽減され、復元速度が向上するため、`USE_STREAMING_RESTORE` を `TRUE` に設定することをお勧めします。

1. `rdsadmin.restore_database` を呼び出して、RDS for Db2 サーバーでバックアップを復元します。`backup_type` を `ONLINE` に設定します。詳細については、「[rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database)」を参照してください。

1. ソースサーバーから S3 バケットにアーカイブログをコピーします。詳細については、IBM Db2 ドキュメントに記載の「[Archive logging](https://www.ibm.com/docs/en/db2/11.5?topic=logging-archive)」を参照してください。

1. `rdsadmin.rollforward_database` を呼び出して、アーカイブログを必要な回数だけ適用します。データベースを `ROLL-FORWARD PENDING` 状態に保つには、`complete_rollforward` を `FALSE` に設定します。詳細については、「[rdsadmin.rollforward\$1database](db2-sp-managing-databases.md#db2-sp-rollforward-database)」を参照してください。

1. すべてのアーカイブログを適用したら、`rdsadmin.complete_rollforward` を呼び出してデータベースをオンラインにします。詳細については、「[rdsadmin.complete\$1rollforward](db2-sp-managing-databases.md#db2-sp-complete-rollforward)」を参照してください。

1. データベースのアプリケーションエンドポイントを更新するか、DNS エンドポイントを更新して RDS for Db2 サーバーにトラフィックをリダイレクトして、アプリケーション接続を RDS for Db2 サーバーに切り替えます。RDS for Db2 データベースエンドポイントを使用して、セルフマネージド Db2 データベースで Db2 自動クライアント再ルーティング機能を使用することもできます。詳細については、 IBM Db2 ドキュメントの「[Automatic client reroute description and setup](https://www.ibm.com/docs/en/db2/11.5?topic=reroute-configuring-automatic-client)」を参照してください。

1. (オプション) ソースデータベースをシャットダウンします。