OB Cloudのデータベース移行機能とリージョン間同期機能により、クロスクラウドデュアルアクティブおよび高可用性アーキテクチャを効率的に構築できます。
説明
クロスクラウドベンダー間のデータ同期移行機能は、ホワイトリスト制限されています。利用を希望する場合は、OB Cloudのサポートチームまでご連絡ください。
原理の概要
OB Cloudは、異なるクラウドサービスプロバイダー間で同一のデータとサービスを展開することをサポートします。各クラウド環境はアクティブ状態を維持し、同時にビジネスリクエストを処理するとともに、リアルタイムデータ同期技術によりデータの一貫性を保ちます。 いずれか一方のクラウド環境で障害が発生した場合、もう一方のクラウド環境がすべてのビジネストラフィックをシームレスに引き継ぎ、サービスの中断を防ぎます。このアーキテクチャは、システムのフォールトトレランスを向上させるだけでなく、単一のクラウドサービスプロバイダーへの依存を低減し、システム全体の信頼性と安定性を強化します。詳細については、クロスクラウドデュアルアクティブによる高可用性の実現をご参照ください。
シナリオ紹介
ショッピングモールの業務を異なるクラウドベンダーに展開し、顧客がそれぞれAlibaba CloudとTencent Cloudで注文した後、両端のデータベースはリアルタイムのクロスクラウドデュアルアクティブレプリケーションリンクを通じて常に同期されます。詳細については、クロスクラウドデュアルアクティブによる高可用性デモをご参照ください。このベストプラクティスでは、OB Cloudデータベースコンソールでクロスクラウドデュアルアクティブ操作を実現する方法について説明します。
前提条件
テンセントクラウドとAlibaba Cloudのインスタンスを例にすると、トランザクション型インスタンスの作成が完了しており、それぞれインスタンスAとインスタンスBとします。インスタンスAをソース側、インスタンスBをターゲット側とします。
データ移行タスクの作成は、プロジェクト所有者、プロジェクト管理者、またはデータサービス管理者のユーザーのみがサポートされます。
ソースデータベースの操作制限について、構造移行およびフル移行段階では、データベースまたはテーブル構造変更のDDL操作を実行しないでください。そうでない場合、データ移行タスクが中断する可能性があります。
データ移行は、OceanBaseデータベースの同一種類のテナント間でのみサポートされます。つまり、OceanBaseデータベースのMySQL互換モードテナントからOceanBaseデータベースのMySQL互換モードテナントへ、またはOceanBaseデータベースのOracle互換モードテナントからOceanBaseデータベースのOracle互換モードテナントへのデータ移行をサポートします。
データ移行は、データベース名、テーブル名、列名がASCIIコードであり、特殊文字(.|"'`()=;/& および改行文字を含む)を含まないオブジェクトのみの移行をサポートします。
データ移行は大文字小文字を区別するモードをサポートしません。ターゲット側に同名だが大文字小文字のみが異なるデータベースやテーブルが存在する場合、事前チェックでエラーが報告されます。
ターゲット側がデータベースの場合、データ移行はターゲット側にトリガー(Trigger)が存在することをサポートしません。存在する場合、データ移行が失敗する可能性があります。
操作手順
以下では、OceanBase Cloudの移行機能と同期メカニズムを利用して、クラウド間のデュアルアクティブ構成による高可用性データベースアーキテクチャを構築します。
テナントとアカウントの作成
インスタンスAとインスタンスBに対して、それぞれテナント、データベース、データベースアカウントを作成し、データベースアカウントのパスワードを保存します。
インスタンスのダッシュボードで、テナントを作成 をクリックし、MySQLテナントを作成します。詳細な操作については、新規テナントの作成をご参照ください。
データベースを作成 をクリックし、作成する をクリックします。
アカウント をクリックしてアカウント管理ページに移動し、アカウントを作成する をクリックします。ポップアップウィンドウで、アカウント名の入力やアカウントタイプの選択などの操作を行います。詳細な操作については、アカウントの作成と管理をご参照ください。
以下のステートメントを実行し、インスタンスAのデータベースに
studentテーブルを作成します。CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` int(11) NOT NULL, `gender` enum('male','female') NOT NULL, `enrollment_date` date NOT NULL, PRIMARY KEY (`id`) )
データ移行タスクの新規作成
OB Cloudデータベースコンソールにログインします。
左側のナビゲーションペインで、データサービス > データ移行 をクリックします。
データ移行 ページで、データ移行 タブをクリックします。
データ移行 タブで、右上の タスクを作成する をクリックします。
ソース セクションで、各パラメータを設定します。
パラメータ説明クラウドプロバイダ テンセント・クラウド を選択します。 データベースタイプ ソースを OceanBase MySQL Mode に選択します。 インスタンスタイプ クラスタインスタンス(トランザクション型)を選択します。 リージョン ソースデータベースのリージョンを選択します。 インスタンス インスタンスAを選択します。 データベースアカウント データ移行用のOB Cloud MySQLデータベースのユーザー名。 パスワード データベースユーザーのパスワード。 ターゲット セクションで、各パラメータを設定します。
パラメータ説明クラウドプロバイダ Alibaba Cloud を選択します。 データベースタイプ ソースを OceanBase MySQL Mode に選択します。 インスタンスタイプ クラスタインスタンス(トランザクション型)を選択します。 リージョン ソースデータベースのリージョンを選択します。 インスタンス インスタンスBを選択します。 データベースアカウント データ移行用のOB Cloud MySQLデータベースのユーザー名。 パスワード データベースユーザーのパスワード。 テストして続行 をクリックし、双方向同期を設定します。
双方向同期の設定
同期トポロジーが双方向同期の場合、サポートされている移行タイプは、スキーマ移行、完全移行、増分同期、および 完全な検証 です。
パラメータ説明構造移行 構造移行では、文字セットのマッピング関係を自ら定義する必要があります。データ移行は、ソースデータベースのデータ(構造)をターゲットデータベースにコピーするだけで、ソースデータ(構造)に影響を与えません。 フル移行 フル移行タスク開始後、データ移行サービスは、ソースデータベースのテーブルの既存データをターゲット側データベースの対応するテーブルに移行します。 増分同期 増分同期タスク開始後、データ移行は、ソース側データベースで変更されたデータ(追加、変更、削除)をターゲット側データベースの対応するテーブルに同期します。増分同期 には、DML同期 と DDL同期 が含まれ、ニーズに応じてカスタマイズ設定できます。詳細については、DML/DDLのカスタム設定をご参照ください。 フル検証 フル移行完了後、増分データがターゲット側に同期され、ソース側とほぼ一致した時点で、データ移行は、ソースデータベースの設定データテーブルとターゲットテーブルに対するフルデータ検証タスクを自動的に開始します。
データ移行は、一意キーテーブル(主キーまたはNULLではない一意キーを持つテーブル)に対してのみフルデータ検証をサポートします。移行対象を選択してください エリアで、移行オブジェクトの選択方法を設定します。オブジェクトの指定 と ルールによる一致 の2つの方法で移行オブジェクトを選択できます。移行範囲を選択してください エリアで、移行するオブジェクトを選択し、ターゲットデータベースの
studentテーブルを選択します。詳細については、双方向同期タスクの設定に関するドキュメントをご参照ください。移行オプション情報を確認します。
次へ をクリックすると、システムは正方向タスクの事前チェックを実行します。
事前確認 プロセスでは、データ移行は、データベースユーザーの読み書き権限、データベースのネットワーク接続などが要件を満たしているかどうかをチェックします。すべてのチェック項目が合格した場合にのみ、データ移行タスクを開始できます。事前チェックでエラーが発生した場合:
問題を調査・処理した後、事前チェックを再実行し、事前チェックが成功するまで繰り返すことができます。
失敗した事前チェック項目の操作列にある スキップ をクリックすることもできます。これにより、その操作をスキップする具体的な影響を示すダイアログボックスが表示されます。スキップしてもよいことを確認したら、ダイアログボックス内の 確定 をクリックしてください。
事前チェックが成功したら、購入 をクリックし、データ移行インスタンスを購入する ページに移動して購入します。
購入が成功すると、データ移行ページに戻り、タスクの進捗状況を確認します。
正方向タスクが モニタリング中 の増分同期段階にあり、タスク状態が 実行中 の場合、逆方向タスクの 設定 ボタンをクリックし、ソース側とターゲット側の情報を確認します。次へ をクリックして逆方向タスクを設定します。
事前チェックを完了し、購入 をクリックし、データ移行インスタンスを購入する ページに移動して購入します。
データ移行ページに戻り、双方向タスクの進捗状況を確認します。
データの同期と検証
双方向タスクの設定が完了したら、インスタンスBで
studentテーブルの初期データを確認し、インスタンスAからインスタンスBへのデータ同期を検証します。インスタンスBで、
studentテーブルのデータを追加します。インスタンスAで、テーブル内のデータを確認し、インスタンスBからインスタンスAへのデータ同期を検証します。