AWS DMSを使用してAmazon RDS for OracleからTiDB Cloudに移行する
このドキュメントでは、AWS Database Migration Service (AWS DMS) を使用して Amazon RDS for Oracle からTiDB Cloud Starterへデータを移行する手順を段階的に説明します。
ヒント:
このドキュメントの手順は、 TiDB Cloud Starterインスタンスに加えて、 TiDB Cloud Essentialインスタンスでも適用できます。
TiDB CloudとAWS DMSについてさらに詳しく知りたい場合は、以下をご覧ください。
AWS DMSを使う理由とは?
AWS DMSは、リレーショナルデータベース、データウェアハウス、NoSQLデータベース、およびその他の種類のデータストアの移行を可能にするクラウドサービスです。
PostgreSQL、Oracle、SQL Serverなどの異種データベースからTiDB Cloudへデータを移行する場合は、AWS DMSの使用をお勧めします。
デプロイメントアーキテクチャ
大まかに言うと、以下の手順に従ってください。
- Oracle用のAmazon RDSソースを設定します。
- TiDB Cloud Starterインスタンスを作成します。
- AWS DMSを使用してデータ移行(フルロード)を設定します。
以下の図は、高レベルのアーキテクチャを示しています。
前提条件
始める前に、以下の前提条件をお読みください。
次に、AWS DMS を使用して Amazon RDS for Oracle からTiDB Cloudへデータを移行する方法を学びます。
ステップ1. VPCを作成する
AWSコンソールにログインし、AWS VPCを作成してください。後でこのVPC内にOracle RDSおよびDMSインスタンスを作成する必要があります。
VPC の作成方法については、 VPCの作成参照してください。
ステップ2. Oracle DBインスタンスを作成する
先ほど作成したVPC内にOracle DBインスタンスを作成し、パスワードを控えてパブリックアクセス権限を付与してください。AWSスキーマ変換ツールを使用するには、パブリックアクセスを有効にする必要があります。なお、本番環境でパブリックアクセス権限を付与することは推奨されません。
Oracle DB インスタンスの作成方法については、「Oracle DB インスタンスOracle DBインスタンスを作成し、Oracle DBインスタンス上のデータベースに接続する。
ステップ3.Oracleでテーブルデータを準備する
以下のスクリプトを使用して、github_events テーブルに 10,000 行のデータを作成し、データを投入します。GitHub イベントデータセットはGHアーカイブからダウンロードできます。 10,000 行のデータが含まれています。以下の SQL スクリプトを使用して Oracle で実行します。
SQLスクリプトの実行が完了したら、Oracleのデータを確認してください。以下の例では、 DBeaverを使用してデータを照会します。
ステップ4. TiDB Cloud Starterインスタンスを作成する
TiDB Cloudコンソールにログインします。
私のTiDBページで、対象のTiDB Cloud Starterインスタンスの名前をクリックすると、その概要ページに移動します。
右上隅にある「接続」をクリックします。
「パスワードを生成」をクリックしてパスワードを生成し、生成されたパスワードをコピーしてください。
ステップ5. AWS DMSレプリケーションインスタンスを作成する
AWS DMS コンソールのレプリケーションインスタンスページに移動し、対応するリージョンに切り替えます。
VPC 内に
dms.t3.largeを使用して AWS DMS レプリケーション インスタンスを作成します。
注記:
TiDB Cloud Starterで動作する AWS DMS レプリケーション インスタンスを作成する詳細な手順については、 AWS DMSをTiDB Cloudに接続するを参照してください。
ステップ6.DMSエンドポイントを作成する
AWS DMSコンソールで、左側のペインにある
Endpointsメニュー項目をクリックします。OracleのソースエンドポイントとTiDBのターゲットエンドポイントを作成します。
以下のスクリーンショットは、ソースエンドポイントの設定を示しています。
以下のスクリーンショットは、ターゲットエンドポイントの設定を示しています。
注記:
TiDB Cloud Starter DMS エンドポイントを作成する詳細な手順については、 AWS DMSをTiDB Cloudに接続する参照してください。
ステップ7.スキーマを移行する
この例では、スキーマ定義が単純なため、AWS DMS がスキーマを自動的に処理します。
AWS Schema Conversion Tool を使用してスキーマを移行する場合は、 AWS SCTのインストール参照してください。
詳細については、 AWS SCTを使用してソーススキーマをターゲットデータベースに移行する参照してください。
ステップ8. データベース移行タスクを作成する
AWS DMS コンソールで、 データ移行タスクページに移動します。お住まいの地域に切り替えてください。次に、ウィンドウの右上隅にある「タスクの作成」をクリックします。
データベース移行タスクを作成し、選択ルールを指定します。
タスクを作成し、開始し、タスクが完了するまで待ちます。
テーブル統計をクリックしてテーブルを確認してください。スキーマ名は
ADMINです。
ステップ9. 下流のTiDBのデータを確認する
TiDB Cloud Starterインスタンスに接続します。そして、 admin.github_eventテーブルのデータを確認します。次のスクリーンショットに示すように、DMSはgithub_eventsテーブルと10000行のデータを正常に移行しました。
まとめ
AWS DMS を使用すると、このドキュメントの例に従って、任意の上流の AWS RDS データベースからデータを正常に移行できます。
移行中に問題や障害が発生した場合は、 CloudWatchのログ情報を確認して問題のトラブルシューティングを行ってください。












