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つのデータソースを確認します。
タスクの作成
データソースを追加した後、以下の手順に従ってデータのフルマイグレーション、増分同期、および構造マイグレーションを実行できます。
タスク管理 -> タスクの作成。
ソースデータベースとターゲットデータベースの設定。
タスク実行クラスタ を選択すると、タスクはバインドされたクラスタのマシンにスケジュールされて実行されます。Community Editionではデプロイが完了すると、デフォルトの実行クラスタが作成されます。
ソースデータベースとしてOceanBaseを、ターゲットデータベースとしてMySQLを選択し、接続テスト をクリックします。
移行・同期または検証対象のデータベース を選択し、データベースのマッピング関係を指定します。
設定完了後、次へ をクリックします。
機能の設定。
増分同期 機能を選択すると、初回はテーブルのフル同期を行い、その後はBinlogを消費して増分データを同期します。
タスクタイプには以下の機能があります:
- フルマイグレーション:データの移行を主とし、データの完全な移転や短期間の増分同期タスクに適しています。
- 増分同期:デフォルトのオプションで、デフォルトで フル初期化 が含まれます。データの同期を主とし、長期的な増分同期タスクに適しています。
- データ検証:ソース側とターゲット側のデータを比較し、一度または定期的に複数回データ移行の正確性を検証します。Community Editionではこの機能はサポートされていません。
- 構造マイグレーション:選択したデータベースやテーブルに基づいて、対応するデータベースやテーブルを自動的に作成します。
- データ訂正版:ソース側とターゲット側のデータを比較し、不一致なデータをソース側と一致するように自動的に上書きします。Community Editionではこの機能はサポートされていません。
タスク仕様:デフォルトで バランス型 、2G の仕様で十分です。
設定完了後、次へ をクリックします。
テーブルとアクションのフィルタリング。
同期するテーブルを選択します。ターゲットデータベースの
UPDATEおよびDELETE操作がソースデータベースと一致していることを確認し、ソースデータベースのテーブルに主キーまたは一意制約が存在する必要があります。設定完了後、次へ をクリックします。
データ処理。
データフィルタ条件 、カスタムコードのアップロード 、一括操作 を追加できます。
- データフィルタ条件:データ処理ページ左側の対応するテーブルの 操作 から データフィルタ条件 を追加します。
- カスタムコードのアップロード:カスタムコードによるリアルタイム処理では、ユーザーがJava言語でカスタムのデータ行処理ロジックを記述できます。これをCloudCanalプラットフォームにアップロードすると、データ同期タスクがフルまたは増分で実行される際に、ユーザーのカスタム処理ロジックが自動的に適用され、その後相手方のデータソースに送信されます。
- 一括操作:データフィルタ条件の一括追加 と 列の一括切り捨て のオプションがあります。
設定完了後、次へ をクリックします。
タスク作成の確認。
最後のステップとして、作成内容に誤りがないことを確認し、タスクの作成 をクリックします。
タスクの状態を確認する
増分同期タスクが正常に作成されると、デフォルトで構造移行、フル移行、増分同期が実行されます。
CloudCanalタスク管理コンソールに戻り、右上の更新をクリックしてタスクのリアルタイム状態を確認します。
関連ドキュメント
CloudCanalの詳細については、CloudCanal公式ドキュメントを参照してください。