CloudCanalは、データ移行と同期を支援するツールであり、企業が高品質なデータ流通チャネルを迅速に構築できるようにします。本製品にはSaaSモードとプライベートエンタープライズ専用モードが含まれます。開発チームのコアメンバーは大手企業出身で、データベースカーネル、大規模分散システム、クラウド製品構築の経験を有し、データベース、分散技術、クラウド製品のビジネスおよびサービスモデルを深く理解しています。
本記事では、CloudCanal Community Edition v2.2.6.9を使用して、OceanBaseデータベースのMySQLモードから対象のMySQLデータベースへデータを移行・同期する方法について説明します。
機能の適用範囲
- CloudCanal Community Editionは、バージョン2.2.3.0からOceanBaseデータベースのMySQLモードからMySQLデータベースへのデータ移行をサポートしています。詳細については、2.2.3.0を参照してください。
- CloudCanalは現在、ソースデータベースとしてOceanBaseデータベースV3.2.3.0より前のバージョンのみをサポートしています。
前提条件
クリーンインストール(Linux/MacOS) を参照して、CloudCanal Community Editionのインストールとデプロイを完了していること。
Binlogクラスタの作成 を参照して、OceanBase Binlogサービスのインストールとデプロイを完了していること。
手順
- データソースを追加します。
- タスクを作成します。
- タスクを確認します。
データソースの追加
CloudCanalプラットフォームにログインします。
データソース管理画面に移動し、新規データソースをクリックします。
新規データソースページで、データソース情報を入力します。
デプロイメントタイプ:オンプレミスデータベースとAlibaba Cloudの2つのオプションがあります。
- Alibaba Cloud:ユーザーがAlibaba Cloud上で購入したデータベースインスタンス。
- オンプレミスデータベース:ユーザーが自らデプロイしたデータベースインスタンス。
データベースタイプ:データソースのタイプを選択します。
新規の2つのデータソースOceanBaseとMySQLを追加し、それぞれ同期のソースデータベースとターゲットデータベースとして設定します:
オンプレミスデータベースからOceanBaseを選択し、自らデプロイしたOceanBaseデータベースインスタンスを追加します。
OceanBaseデータソースの設定:
- ネットワークアドレス:OceanBaseデータベースへの接続IPアドレスを入力します。直接接続またはODP経由で接続します。
- oblogproxy host:OceanBase BinlogサービスのIPアドレス。OceanBaseデータベースがソースデータベースとして増分同期する場合は必須です。OceanBaseデータベースがターゲットデータベースの場合は空でも構いません。OceanBase Binlogサービスの詳細については、OceanBase Binlogサービスを参照してください。
- OceanBaseRpcPort:OceanBase Rpcポート。デフォルトは2882。
- 認証方式:アカウントパスワード、アカウントパスワードあり、アカウントパスワードなしのいずれかです。デフォルトはアカウントパスワード方式です。
- アカウント:OceanBaseデータベースへの接続ユーザー名。直接接続形式:ユーザー名@テナント名;ODP接続形式:ユーザー名@テナント名#クラスタ名。
- パスワード:OceanBaseデータベースの接続ユーザー名に対応するパスワード。
- 説明:オプションです。覚えやすく、使用時に識別しやすいようなメモ(取引データベース、ユーザーデータベース、テストデータベースなど)を入力してください。
オンプレミスデータベースからMySQLを選択し、自らデプロイしたMySQLデータベースインスタンスを追加します。
MySQLデータソースの設定:
- ネットワークアドレス:MySQLデータベースのIPアドレスを入力します。
- 認証方式:アカウントパスワード、アカウントパスワードあり、アカウントパスワードなしの3つの方式があります。デフォルトはアカウントパスワード方式です。
- アカウント:MySQLデータベースへの接続ユーザー名。
- パスワード:MySQLデータベースの接続ユーザー名に対応するパスワード。
- 説明:オプションです。覚えやすく、使用時に識別しやすいようなメモ(取引データベース、ユーザーデータベース、テストデータベースなど)を入力してください。
新規に追加された2つのデータソースを確認します。
タスクの作成
データソースの追加が完了したら、以下の手順に従って、データのフル移行、増分同期、構造移行を実行できます。
タスク管理 -> タスクの作成。
ソースデータベースとターゲットデータベースの設定。
タスク実行クラスタ を選択します。タスクはバインドされたクラスタ内のマシンにスケジュールされて実行されます。コミュニティエディションのデプロイが完了すると、デフォルトの実行クラスタが存在します。
ソースデータベースとしてOceanBaseを、ターゲットデータベースとしてMySQLを選択し、接続テスト をクリックします。
移行・同期または検証するデータベース を選択し、データベースのマッピング関係を指定します。
設定が完了したら、次へ をクリックします。
機能の設定。
増分同期 機能を選択します。初回はテーブルのチェックからフル同期が行われ、その後binlogを消費してデータを増分同期します。
タスクタイプには以下の機能があります:
- フル移行:データ移行を主とし、データの全量移行や短期間の増分同期タスクに適しています。
- 増分同期:デフォルトのオプションで、デフォルトで フル初期化 が含まれます。データ同期を主とし、長期間の増分同期タスクに適しています。
- データ検証:ソース側とターゲット側のデータを比較し、一度にまたは定期的に複数回データ移行の正確性を検証します。コミュニティエディションはこの機能をサポートしていません。
- 構造移行:選択したデータベース、テーブルに基づいて、対応するデータベース、テーブルを自動的に作成します。
- データ訂正:ソース側とターゲット側のデータを比較し、一致しないデータをソース側と一致するように自動的に上書きします。コミュニティエディションはこの機能をサポートしていません。
タスク仕様:デフォルトの バランス型、2G の仕様で十分です。
設定が完了したら、次へ をクリックします。
テーブル&actionのフィルタリング。
同期するテーブルを選択します。ターゲットデータベースの
UPDATEおよびDELETE操作がソースデータベースと一致するようにするため、ソースデータベースのテーブルには主キーまたは一意制約が必要です。設定が完了したら、次へ をクリックします。
データ処理。
データフィルタ条件 の追加、カスタムコードのアップロード および 一括操作 を行えます。
- データフィルタ条件:データ処理ページの左側、該当するテーブルの 操作 から データフィルタ条件 を追加します。
- カスタムコードのアップロード:カスタムコードによるリアルタイム処理では、ユーザーはJava言語でカスタムのデータ行処理ロジックを記述できます。CloudCanalプラットフォームにアップロードすると、データ同期タスクがフルまたは増分で実行される際に、ユーザーのカスタム処理ロジックが自動的に適用され、その後相手方のデータソースに投入されます。
- 一括操作:データフィルタ条件の一括追加 と 列の一括切り捨て オプションがあります。
設定が完了したら、次へ をクリックします。
タスク作成の確認。
最後に、作成内容に誤りがないことを確認し、タスクの作成 をクリックします。
タスクの状態を確認する
増分同期タスクが正常に作成されると、デフォルトで 構造移行、フル移行、増分同期 が実行されます。
CloudCanalのタスク管理コンソールに戻り、右上の 更新 をクリックして、タスクのリアルタイム状態を確認します。
関連ドキュメント
CloudCanalの詳細については、CloudCanal公式ドキュメントを参照してください。