AWS DMS を使用して Amazon RDS for Oracle からTiDB Cloudに移行する

このドキュメントでは、AWS Database Migration Service (AWS DMS) を使用して Amazon RDS for Oracle からTiDB Cloudサーバーレスにデータを移行する方法の例を段階的に説明します。

TiDB Cloudと AWS DMS について詳しく知りたい場合は、以下を参照してください。

AWS DMS を使用する理由

AWS DMS は、リレーショナル データベース、データ ウェアハウス、NoSQL データベース、その他の種類のデータ ストアの移行を可能にするクラウド サービスです。

PostgreSQL、Oracle、SQL Server などの異種データベースからTiDB Cloudにデータを移行する場合は、AWS DMS を使用することをお勧めします。

デプロイメントアーキテクチャ

大まかに言うと、次の手順に従います。

  1. ソース Amazon RDS for Oracle をセットアップします。
  2. ターゲットTiDB Cloudサーバーレスを設定します。
  3. AWS DMS を使用してデータ移行 (フルロード) を設定します。

次の図は、高レベルのアーキテクチャを示しています。

Architecture

前提条件

始める前に、次の前提条件をお読みください。

次に、AWS DMS を使用して Amazon RDS for Oracle からTiDB Cloudにデータを移行する方法を学習します。

ステップ1. VPCを作成する

AWS コンソールにログインし、AWS VPC を作成します。後でこの VPC に Oracle RDS および DMS インスタンスを作成する必要があります。

VPC を作成する方法については、 VPC の作成参照してください。

Create VPC

ステップ2. Oracle DBインスタンスを作成する

作成した VPC に Oracle DB インスタンスを作成し、パスワードを覚えておき、パブリックアクセスを許可します。AWS スキーマ変換ツールを使用するには、パブリックアクセスを有効にする必要があります。本番環境でパブリックアクセスを許可することは推奨されないことに注意してください。

Oracle DB インスタンスを作成する方法については、 Oracle DBインスタンスを作成し、Oracle DBインスタンス上のデータベースに接続する参照してください。

Create Oracle RDS

ステップ3. Oracleでテーブルデータを準備する

次のスクリプトを使用して、github_events テーブルに 10000 行のデータを作成し、入力します。github イベント データセットを使用して、 GHアーカイブからダウンロードできます。これには 10000 行のデータが含まれています。次の SQL スクリプトを使用して、Oracle で実行します。

SQL スクリプトの実行が完了したら、Oracle のデータを確認します。次の例では、 DBeaver使用してデータを照会します。

Oracle RDS Data

ステップ4. TiDB Cloud Serverlessクラスターを作成する

  1. TiDB Cloudコンソールにログインします。

  2. TiDB Cloud Serverless クラスターを作成する

  3. クラスターページで、ターゲット クラスター名をクリックして概要ページに移動します。

  4. 右上隅の「接続」をクリックします。

  5. 「パスワードの生成」をクリックしてパスワードを生成し、生成されたパスワードをコピーします。

ステップ5. AWS DMSレプリケーションインスタンスを作成する

  1. AWS DMS コンソールのレプリケーションインスタンスページに移動し、対応するリージョンに切り替えます。

  2. VPC にdms.t3.largeの AWS DMS レプリケーションインスタンスを作成します。

    Create AWS DMS Instance

注記:

TiDB Cloud Serverless と連携する AWS DMS レプリケーションインスタンスを作成する詳細な手順については、 AWS DMS をTiDB Cloudクラスターに接続する参照してください。

ステップ6. DMSエンドポイントを作成する

  1. AWS DMS コンソールで、左側のペインのEndpointsメニュー項目をクリックします。

  2. Oracle ソース エンドポイントと TiDB ターゲット エンドポイントを作成します。

    次のスクリーンショットは、ソース エンドポイントの構成を示しています。

    Create AWS DMS Source endpoint

    次のスクリーンショットは、ターゲット エンドポイントの構成を示しています。

    Create AWS DMS Target endpoint

注記:

TiDB Cloud Serverless DMS エンドポイントを作成する詳細な手順については、 AWS DMS をTiDB Cloudクラスターに接続するを参照してください。

ステップ7. スキーマを移行する

この例では、スキーマ定義が単純なので、AWS DMS が自動的にスキーマを処理します。

AWS スキーマ変換ツールを使用してスキーマを移行する場合は、 AWS SCT のインストール参照してください。

詳細についてはAWS SCT を使用してソース スキーマをターゲット データベースに移行する参照してください。

ステップ8. データベース移行タスクを作成する

  1. AWS DMS コンソールで、 データ移行タスクページに移動します。リージョンに切り替えます。次に、ウィンドウの右上隅にある[タスクの作成]クリックします。

    Create task

  2. データベース移行タスクを作成し、選択ルールを指定します。

    Create AWS DMS migration task

    AWS DMS migration task selection rules

  3. タスクを作成して開始し、タスクが完了するまで待機します。

  4. テーブル統計をクリックしてテーブルを確認します。スキーマ名はADMINです。

    Check AWS DMS migration task

ステップ9. 下流のTiDBクラスタのデータを確認する

TiDB Cloudサーバーレス クラスターに接続し、 admin.github_eventテーブルのデータを確認します。次のスクリーンショットに示すように、DMS はテーブルgithub_eventsと 10000 行のデータを正常に移行しました。

Check Data In TiDB

まとめ

AWS DMS を使用すると、このドキュメントの例に従って、任意のアップストリーム AWS RDS データベースからデータを正常に移行できます。

移行中に問題や障害が発生した場合は、 クラウドウォッチのログ情報を確認して問題のトラブルシューティングを行うことができます。

Troubleshooting

参照

このページは役に立ちましたか?