Amazon RDS for Db2 のダウンタイムがほぼゼロの Linux から Linux への移行 - Amazon Relational Database Service

Amazon RDS for Db2 のダウンタイムがほぼゼロの Linux から Linux への移行

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

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

ほぼゼロのダウンタイムでの移行の制限と推奨事項

ほぼゼロのダウンタイムでの移行の使用には、次の制限と推奨事項が適用されます。

  • Amazon RDS では、移行のダウンタイムをほぼゼロにするために、オンラインバックアップが必要です。これは、アーカイブされたトランザクションログをアップロードすると、Amazon RDS によってデータベースがロールフォワード保留状態のままになるためです。詳細については、「Db2 データベースの移行」を参照してください。

  • RDS for Db2 DB インスタンスがあるリージョンとは異なる AWS リージョンのAmazon S3 バケットから復元することはできません。

  • RDS for Db2 DB インスタンスにすでにデータベースが含まれている場合、データベースを復元することはできません。

  • Amazon S3 では、S3 バケットにアップロードするファイルのサイズが 5 TB に制限されます。データベースバックアップファイルが 5 TB を超える場合は、バックアップファイルを小さいファイルに分割します。

  • Amazon RDS は、非 fenced 外部ルーチン、増分復元、または Delta 復元をサポートしていません。

  • 暗号化したソースデータベースから復元することはできませんが、暗号化された Amazon RDS DB インスタンスには復元できます。

データベースを復元すると、Amazon RDS によってバックアップがコピーされ、RDS for Db2 インスタンスで抽出されます。バックアップサイズとディスク上の元のデータベースサイズの合計以上のストレージ領域を RDS for Db2 インスタンス用にプロビジョニングすることをお勧めします。

復元されたデータベースの最大サイズは、サポートされているデータベース最大サイズからバックアップのサイズを引いたものです。例えば、サポートされている最大データベースサイズが 64 TiB で、バックアップのサイズが 30 TiB の場合、復元されたデータベースの最大サイズは 34 TiB です。

64 TiB - 30 TiB = 34 TiB

データベースを Amazon S3 にバックアップする

Amazon S3 でデータベースをバックアップするには、次の AWS コンポーネントが必要です。

  • バックアップファイルを保存する Amazon S3 バケット: Amazon RDS に移行するバックアップファイルをアップロードします。Amazon RDS では、移行のダウンタイムをほぼゼロにするために、オンラインバックアップが必要です。S3 バケットが既にある場合はそのバケットを使用できます。S3 バケットがない場合は、「Amazon S3 ユーザーガイド」の「バケットの作成」を参照してください。

    注記

    データベースが大きく、S3 バケットへの転送に時間がかかる場合は、 AWS Snow Family デバイスを注文して、AWS にバックアップの実行を依頼できます。ファイルをデバイスにコピーして Snow ファミリーチームに返すと、チームはバックアップしたイメージを S3 バケットに転送します。詳細については、「AWS Snow Family ドキュメント」を参照してください。

  • S3 バケットにアクセスするための IAM ロール: AWS Identity and Access Management (IAM) ロールが既にある場合は、そのロールを使用できます。ロールがない場合は、「ステップ 2: IAM ロールを作成して IAM ポリシーをアタッチする」を参照してください。

  • IAM ロールにアタッチされた信頼関係とアクセス許可を持つ IAM ポリシー: 詳細については、「ステップ 1: IAM ポリシーを作成する」を参照してください。

  • RDS for Db2 DB インスタンスに追加された IAM ロール: 詳細については、「ステップ 3: RDS for Db2 DB インスタンスに IAM ロールを追加する」を参照してください。

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

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

デフォルトの自動ストレージグループを作成するには
  1. ソースデータベースに接続します。次の例では、source_database をデータベースの名前に置き換えます。

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

    db2 "create stogroup IBMSTOGROUP ON storage_path set as default"
  3. バックエンドプロセスを終了します。

    db2 terminate

Db2 データベースの移行

Amazon S3 でデータベースをバックアップし、自動ストレージグループを作成したら、Db2 データベースを RDS for Db2 DB インスタンスに移行できます。

ほぼゼロのダウンタイムでの移行を実行するには
  1. ソースデータベースのオンラインバックアップを実行します。詳細については、IBM Db2 ドキュメントの「BACKUP DATABASE command」をご参照ください。

  2. データベースのバックアップを Amazon S3 バケットにコピーします。Amazon S3 の使用の詳細については、「Amazon Simple Storage Service ユーザーガイド」を参照してください。

  3. RDS for Db2 DB インスタンスの master_usernamemaster_password を使用して rdsadmin サーバーに接続します。

    db2 connect to rdsadmin user master_username using master_password
  4. (オプション) データベースが復元オペレーションに最適な設定になっていることを確認するには、RESTORE_DATABASE_PARALLELISM を呼び出して rdsadmin.show_configurationRESTORE_DATABASE_NUM_BUFFERS の値をチェックできます。これらの値を必要に応じて変更するには、rdsadmin.set_configuration を呼び出します。これらの値を明示的に設定すると、大量のデータを含むデータベースを復元する際のパフォーマンスを向上させることができます。

  5. rdsadmin.restore_database を呼び出して、RDS for Db2 サーバーでバックアップを復元します。backup_typeONLINE に設定します。詳細については、「rdsadmin.restore_database」を参照してください。

  6. ソースサーバーから S3 バケットにアーカイブログをコピーします。詳細については、IBM Db2 ドキュメントに記載の「Archive logging」を参照してください。

  7. rdsadmin.rollforward_database を呼び出して、アーカイブログを必要な回数だけ適用します。データベースを ROLL-FORWARD PENDING 状態に保つには、complete_rollforwardFALSE に設定します。詳細については、「rdsadmin.rollforward_database」を参照してください。

  8. すべてのアーカイブログを適用したら、rdsadmin.complete_rollforward を呼び出してデータベースをオンラインにします。詳細については、「rdsadmin.complete_rollforward」を参照してください。

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

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