本記事では、データ移行サービスを使用して、OceanBaseデータベースのMySQL互換モードのデータをAnalyticDB for MySQL(略称:ADB)に移行する方法について説明します。
前提条件
ソース側のOceanBaseデータベースMySQL互換モードテナントとターゲット側のADBインスタンスを作成済みであること。
構造移行を使用する場合、ターゲット側のADBインスタンスに対応するデータベースを事前に作成していること。
ソース側とターゲット側に接続できるデータベースアカウントを準備していること。
ソース側とターゲット側の接続情報を準備し、対応するネットワークと許可リストの設定を完了していること。データソースは事前に作成してテストすることができます。詳細については、OceanBaseデータソースおよびADBデータソースを参照してください。
使用上の制限
データ移行はクラスタインスタンスのみをサポートし、共有インスタンスはサポートしません。
サポートされているターゲット側のバージョンはADB 3.0です。
主キーのないテーブルの移行はサポートされていません。異なるシナリオでの処理方法は以下のとおりです:
- データベース・テーブル移行またはマッチングルールによる移行オブジェクトの選択:システムは主キーのないテーブルを自動的にフィルタリングし、移行オブジェクトには追加しません。
- データベース全体移行:ソースデータベースに主キーのないテーブルが存在する場合、ADBは主キーのないテーブルの作成をサポートしないため、構造移行段階でエラーが発生します。
- 増分同期中に新規作成された主キーのないテーブル:データベース全体移行であってもマッチングルールによるオブジェクト選択であっても、ADBは主キーのないテーブルの作成をサポートしないため、同期タスクはエラーになります。
構造移行、全量移行、増分同期をサポートします。増分同期はDMLとDDLをサポートします。
全量検証と逆方向増分はサポートされていません。
この移行構成では、データ検証タスクを作成できません。
移行オプションでは、インデックスの後付け機能は提供されていません。
オブジェクト設定では、列の選択機能は提供されていません。
ソース側とターゲット側のインスタンスタイプ
サイド |
データベースタイプ |
インスタンスタイプ |
|---|---|---|
| ソース側 | OceanBase MySQL Compatible | クラスタインスタンス(トランザクション型)、クラスタインスタンス(分析型)、クラスタインスタンス(フラッグシップ版)またはセルフマネージドデータベース |
| ターゲット側 | AnalyticDB for MySQL(ADB) | Alibaba Cloud AnalyticDB for MySQL |
手順
データ移行タスクを新規作成します。
- OceanBase Cloudコンソールにログインします。
- 左側のナビゲーションバーで、データサービス > データ移行 をクリックします。
- データ移行 タブで、移行タスクを作成する をクリックします。
カスタムの移行タスク名を入力します。
数字と英字の組み合わせを使用することを推奨します。名前にはスペースを含めることができず、長さは64文字を超えてはなりません。
ソースとターゲットを設定する ページで、ソースとターゲットを設定します。
ソースまたはターゲットエリアの クイック入力 をクリックし、保存済みのデータソースを選択すると、対応する設定が自動的に入力されます。手動で接続情報を入力した後、該当エリアの右上にある 保存 アイコンをクリックして、設定をデータソースとして保存することもできます。
ソースを設定します。
パラメータ説明クラウドプロバイダー ソースのOceanBaseデータベースが配置されているクラウドプロバイダーを選択します。ページには Alibaba Cloud、AWS、Google Cloud のオプションが表示されます。 リージョン ソースデータベースが配置されているリージョンを選択します。 データベースタイプ OceanBase MySQL Compatible を選択します。 インスタンスタイプ クラスタインスタンス(トランザクション)、クラスタインスタンス(分析型)、クラスタインスタンス(フラッグシップ版)、または セルフマネージド型データベース を選択します。 インスタンス クラスタインスタンスを選択した場合、ソーステナントが配置されているインスタンスを選択します。 テナント クラスタインスタンスを選択した場合、移行対象のMySQL互換モードテナントを選択します。 アカウント ソース移行アカウントを選択または入力します。 パスワード ソース移行アカウントのパスワードを入力します。 セルフマネージド型データベース を選択した場合、ページに表示される接続情報も設定する必要があります。
ターゲットを設定します。
パラメータ説明クラウドプロバイダー Alibaba Cloud を選択します。 リージョン ターゲットのADBインスタンスが配置されているリージョンを選択します。 データベースタイプ AnalyticDB for MySQL(ADB) を選択します。 インスタンスタイプ Alibaba Cloud AnalyticDB for MySQL を選択します。 接続タイプ プライベートネットワーク接続、パブリック接続、または ピアリング接続 を選択します。 エンドポイントサービスID プライベートネットワーク接続を選択した場合に入力し、ADBインスタンスへのアクセスに使用します。取得方法 をクリックして説明を見ることができます。 ピアリング接続ID ピアリング接続を選択した場合、ドロップダウンリストから利用可能なピアリング接続を選択します。 接続情報 パブリックネットワーク接続またはピアリング接続を選択した場合、該当ネットワークを介してADBインスタンスにアクセスするためのIPアドレスまたはホスト名を入力します。パブリックネットワーク接続では、ページに表示されるIPアドレスをADBインスタンスの許可リストに追加する必要があります。 ポート 選択した接続方式に応じて、エンドポイントサービスまたはADBインスタンスの実際の接続ポートを入力します。 アカウント ターゲットのADB移行アカウントを入力します。 パスワード ターゲット移行アカウントのパスワードを入力します。 3つの接続方式の準備作業とパラメータの説明については、ADBデータソースを参照してください。
テストして続行 をクリックします。
タイプとオブジェクトを選択 ページで、移行タイプとオブジェクトを設定します。
移行タイプを選択します。
移行タイプ説明構造移行 ソース側のデータベースとテーブルの構造をターゲット側のADBに移行します。 全量移行 ソース側のテーブルにある既存データをターゲット側の対応するテーブルに移行します。 増分同期 ソース側の以降の変更を継続的に同期します。DMLとDDLの同期をサポートしています。設定方法については、カスタムDML/DDLの設定を参照してください。 増分同期 を選択した後、以下の同期範囲を設定できます:
- DML同期:
INSERT、UPDATE、DELETE操作をサポートします。 - DDL同期:テーブルオブジェクトは
CREATE、ALTER、DROP、RENAME、TRUNCATE操作をサポートし、インデックスオブジェクトはCREATEおよびDROP操作をサポートします。同期範囲を変更する前に、サポートされているDDLを表示 をクリックして説明を確認できます。
この移行構成では、全量検証と逆方向増分はサポートされていません。
- DML同期:
移行オブジェクトを選択します。
オブジェクトの指定 と マッチングルール をサポートしています。指定オブジェクトを使用する場合、データベースオブジェクト または データベース全体 タブでオブジェクトを選択します。ソース側のオブジェクトリストから移行するオブジェクトを選択し、> をクリックして選択済みオブジェクトリストに追加します。マッチングルールの設定方法については、マッチングルールの設定を参照してください。
DDL同期を有効にした後は、マッチングルールまたはデータベース全体の移行を使用して、その後新規作成または名前変更されたオブジェクトを移行対象に含めることを推奨します。データベーステーブル移行で指定オブジェクトを選択した場合、その後新規作成または名前変更されたオブジェクトは自動的に移行範囲に追加されません。
必要に応じてオブジェクトマッピングとADBテーブル設定を調整します。
操作説明名前の変更 ターゲット側のデータベース名とテーブル名を変更します。詳細については、データベース名とテーブル名の変更を参照してください。 行フィルター条件 オブジェクトの 設定 で WHERE条件を使用してデータをフィルタリングします。詳細については、SQL 条件でのデータフィルタリングを参照してください。フィルター条件のプッシュダウン 行フィルター条件を必要に応じてソース側のデータベースへプッシュダウンして実行します。有効にする前に、フィルター条件に対応するインデックスがソース側のデータベースに存在することを確認してください。 主キー オブジェクトの 設定 で、ターゲットテーブルの主キーを表示または変更します。 分散キー 必要に応じてターゲットテーブルの分散キーを設定します。 パーティションキーとライフサイクル パーティションキー設定を有効にした後、パーティションキーの式とライフサイクルを入力します。 オブジェクトの削除 移行が一時的に不要な単一またはすべてのオブジェクトを削除します。 オブジェクト設定では、列の選択機能は提供されません。
次へ をクリックし、移行オプション ページでパラメータを設定します。
全量移行オプション
全量移行を選択すると、以下のパラメータが表示されます。
パラメータ説明読み取り並列設定 ソースからデータを読み取る並列数を設定します。 書き込み並列設定 ターゲットにデータを書き込む並列数を設定します。 書き込み方式 SQL書き込み:SQL を使用して ADB にデータを書き込みます。ダイレクトロード:ダイレクトロード方式で全量データをインポートします。 全量移行レートの制限 必要に応じて有効にし、ソース側の読み取りとターゲット側の書き込みの RPS、BPS を設定します。RPS は 1 秒あたりに処理する行数を制限し、BPS は 1 秒あたりに処理するデータ量を制限します。 ターゲット側テーブルオブジェクトにレコードが存在する場合の処理ポリシー 移行を停止する または 無視する を選択します。 増分同期オプション
増分同期を選択すると、以下のパラメータが表示されます。
パラメータ説明書き込み並列設定 増分段階でターゲット側にデータを書き込む並列数を設定します。 増分移行レートの制限 必要に応じて有効にし、ターゲット側の書き込み RPS と BPS を設定します。 増分同期開始時点 全量移行を選択した後、増分同期の開始時点は変更できません。
移行オプションの設定が完了したら、事前チェック をクリックします。
事前チェックに成功したら、購入 をクリックし、データ移行インスタンスを購入する ページに進みます。
購入が成功すると、データ移行タスクを開始できます。詳細については、データ移行インスタンスの購入を参照してください。すぐに購入する必要がない場合は、保存 をクリックし、後からタスクの詳細ページで購入を続けることができます。
タスクが開始されたら、移行の進捗状況と増分遅延を確認し、ターゲット側のデータを検証してください。詳細については、データ移行タスクの詳細を見るを参照してください。