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公式ドキュメントを参照してください。