このトピックでは、MySQL または Oracle のいずれかの同じ互換モードで、OceanBase データベース間でデータを同期する方法について説明します。
前提条件
データ伝送サービスには、クラウド リソースにアクセスする権限があります。 詳細については、「ロールにデータ伝送の権限を付与する」をご参照ください。
OceanBase Database でデータ同期の専用データベース ユーザーを作成し、対応する権限をユーザーに付与しました。 詳細については、「データ ソースのユーザー権限を構成する」をご参照ください。
制限事項
データ伝送サービスは、オブジェクトのデータベース名、テーブル名、および列名が特殊文字を含まない ASCII エンコードされている場合にのみ、オブジェクトの同期をサポートします。 特殊文字は、改行、スペース、および次の文字です。 . | " ' ` ( ) = ; / & \.
考慮事項
ノード間またはクライアントとサーバー間でクロックが同期していない場合、増分同期の待機時間が不正確になる可能性があります。
たとえば、クロックが標準時刻より早い場合、待機時間は負になる可能性があります。 クロックが標準時刻より遅い場合、待機時間は正になる可能性があります。
データ同期タスクの作成時に[増分同期]のみを選択した場合、データ転送サービスでは、ソースデータベースのローカル増分ログを少なくとも 48 時間保持する必要があります。
データ同期タスクを作成するときに [完全同期] と [増分同期] を選択した場合、データ伝送サービスでは、ソースデータベースのローカル増分ログを少なくとも 7 日間保持する必要があります。そうしないと、データ伝送サービスが増分ログを取得できないため、データ同期タスクが失敗したり、ソースとターゲットのデータに不整合が生じたりする可能性があります。
ソースまたはターゲットに大文字と小文字のみが異なるテーブル オブジェクトが含まれている場合、ソースまたはターゲットで大文字と小文字が区別されないため、データ同期の結果が期待どおりにならない可能性があります。
サポートされているソースおよびターゲット インスタンス タイプ
ソース | ターゲット |
OB_MySQL (OceanBase クラスタ インスタンス) | OB_MySQL (OceanBase クラスタ インスタンス) |
OB_MySQL (OceanBase クラスタ インスタンス) | OB_MySQL (VPC 内のセルフマネージド データベース) |
OB_MySQL (OceanBase クラスタ インスタンス) | OB_MySQL (サーバーレス インスタンス) |
OB_MySQL (VPC 内のセルフマネージド データベース) | OB_MySQL (OceanBase クラスタ インスタンス) |
OB_MySQL (VPC 内のセルフマネージド データベース) | OB_MySQL (サーバーレス インスタンス) |
OB_Oracle (OceanBase クラスタ インスタンス) | OB_Oracle (サーバーレス インスタンス) |
OB_Oracle (VPC 内のセルフマネージド データベース) | OB_Oracle (サーバーレス インスタンス) |
手順
ApsaraDB for OceanBase コンソール にログインし、データ同期タスクを購入します。
詳細については、「データ同期タスクを購入する」をご参照ください。
[データ伝送] > [データ同期] を選択します。 表示されるページで、データ同期タスクの [構成] をクリックします。

既存のタスクの構成を参照する場合は、[構成の参照] をクリックします。 詳細については、「データ同期タスクの構成を参照およびクリアする」をご参照ください。
[ソースとターゲットの選択] ページで、パラメーターを構成します。
パラメーター
説明
同期タスク名
数字と文字の組み合わせに設定することをお勧めします。 スペースを含めることはできず、長さは 64 文字を超えることはできません。
ソース
OceanBase データ ソースを作成済みの場合は、ドロップダウン リストから選択します。 そうでない場合は、ドロップダウン リストの [新しいデータ ソース] をクリックし、右側に表示されるダイアログ ボックスで作成します。 パラメーターの詳細については、「OceanBase データ ソースを作成する」をご参照ください。
ターゲット
OceanBase データ ソースを作成済みの場合は、ドロップダウン リストから選択します。 そうでない場合は、ドロップダウン リストの [新しいデータ ソース] をクリックし、右側に表示されるダイアログ ボックスで作成します。
タグ (オプション)
ドロップダウン リストからターゲット タグを選択します。 また、[タグの管理] をクリックして、タグを作成、変更、および削除することもできます。 詳細については、「タグを使用してデータ同期タスクを管理する」をご参照ください。
[次へ] をクリックします。 [同期タイプの選択] ページで、現在のデータ同期タスクの同期タイプを指定します。

サポートされている同期タイプは、[スキーマ同期]、[完全同期]、および [増分同期] です。[増分同期] は、[DML 同期] と [DDL 同期] のオプションをサポートしています。サポートされている DML 操作は INSERT、DELETE、および UPDATE です。必要に応じてオプションを選択できます。詳細については、「DDL/DML 同期を設定する」をご参照ください。サポートされている DDL 操作については、「同期でサポートされている DDL 操作」をご参照ください。
[次へ] をクリックします。 [同期オブジェクトの選択] ページで、現在のデータ同期タスクで同期するオブジェクトを選択します。
[オブジェクトの指定] オプションまたは [一致ルール] オプションを使用して、同期オブジェクトを指定できます。 このトピックでは、[オブジェクトの指定] オプションを使用して同期オブジェクトを指定する方法について説明します。 一致ルールの構成方法については、「一致ルールを構成および変更する」トピックの「データベース間のデータ移行/同期のワイルドカード パターン」セクションをご参照ください。
重要同期するテーブルの名前、およびテーブル内の列の名前には、漢字を含めることはできません。
データベース名またはテーブル名に二重ドル記号 ($$) が含まれている場合、同期タスクを作成することはできません。
[同期タイプの選択] ステップで [DDL 同期] を選択した場合は、[一致ルール] オプションを使用して同期オブジェクトを選択することをお勧めします。 これにより、一致ルールを満たすすべての新しいオブジェクトが確実に同期されます。 [オブジェクトの指定] オプションを使用して同期オブジェクトを選択した場合、新しいオブジェクトまたは名前が変更されたオブジェクトは同期されません。

[同期オブジェクトの選択] セクションで、[オブジェクトの指定] を選択します。
[同期スコープの選択] セクションで、[ソース オブジェクト] リストから同期するオブジェクトを選択します。 1 つ以上のデータベースのテーブルを同期オブジェクトとして選択できます。
[>] をクリックして、[ターゲット オブジェクト] リストに追加します。
データ伝送サービスでは、テキストを使用してオブジェクトをインポートできます。 また、オブジェクトの名前変更、行フィルターの設定、単一またはすべてのオブジェクトの削除も可能です。
説明[一致ルール] を選択して同期オブジェクトを指定する場合、オブジェクトの名前変更は、指定された一致ルールの構文に基づいて実装されます。 操作エリアでは、フィルタリング条件を設定し、シャーディング列と同期する列を選択することのみ可能です。 詳細については、「一致ルールを構成および変更する」をご参照ください。
操作
説明
オブジェクトのインポート
右側のリストで、右上隅にある [オブジェクトのインポート] をクリックします。
表示されるダイアログ ボックスで、[OK] をクリックします。
重要この操作は以前の選択を上書きします。 注意して進めてください。
[同期オブジェクトのインポート] ダイアログ ボックスで、同期するオブジェクトをインポートします。 CSV ファイルをインポートして、データベースまたはテーブルの名前を変更し、行フィルタリング条件を設定できます。 詳細については、「同期オブジェクトの設定をダウンロードおよびインポートする」をご参照ください。
[検証] をクリックします。
検証が成功したら、[OK] をクリックします。
オブジェクトの名前変更
データ伝送サービスでは、同期オブジェクトの名前を変更できます。 詳細については、「データベース テーブルの名前を変更する」をご参照ください。
設定の構成
データ伝送サービスでは、
WHERE条件を使用して行をフィルタリングできます。 詳細については、「SQL 条件を使用してデータをフィルタリングする」をご参照ください。[列の表示] セクションで、同期オブジェクトの列情報をクエリできます。
1 つまたはすべてのオブジェクトを削除する
データ伝送サービスでは、データ マッピング中に右側のリストに追加された単一またはすべての同期オブジェクトを削除できます。
単一の同期オブジェクトを削除する
右側のリストで、削除するオブジェクトにカーソルを合わせ、[削除] をクリックして同期オブジェクトを削除します。
すべての同期オブジェクトを削除する
右側のリストで、右上隅にある [すべて削除] をクリックします。 表示されるダイアログ ボックスで、[OK] をクリックしてすべての同期オブジェクトを削除します。
[次へ] をクリックします。 [同期オプション] ページで、パラメーターを構成します。
完全同期
次の表に、[同期タイプの選択] ページで [完全同期] を選択した場合にのみ表示される完全同期パラメーターを示します。

パラメーター
説明
読み取り同時実行性
完全同期中にソースからデータを読み取るための同時実行性。 最大値は 512 です。 同時実行性が高いと、ソースに過度のストレスがかかり、ビジネスに影響を与える可能性があります。
書き込み同時実行性
完全同期中にターゲットにデータを書き込むための同時実行性。 最大値は 512 です。 書き込み同時実行性が高いと、ターゲットに過度のストレスがかかり、ビジネスに影響を与える可能性があります。
完全同期レート制限
必要に応じて、完全同期レートを制限するかどうかを選択できます。 完全同期レートを制限することを選択した場合は、1 秒あたりのレコード数 (RPS) と 1 秒あたりのバイト数 (BPS) を指定する必要があります。 RPS は、完全同期中にターゲットに同期されるデータ行の最大数を 1 秒あたりで指定し、BPS は、完全同期中にターゲットに同期されるデータの最大量をバイト単位で 1 秒あたりで指定します。
説明ここで指定された RPS 値と BPS 値は、調整専用です。 実際の完全同期のパフォーマンスは、ソースとターゲットの設定やインスタンスの仕様などの要因の影響を受けます。
ターゲット データベース内の空でないテーブルの処理
[無視] を選択した場合、挿入するデータがターゲット テーブルの既存のデータと競合すると、データ伝送サービスは競合するデータをログに記録し、既存のデータを保持します。
重要[無視] を選択した場合、完全検証のために IN モードでデータがプルされます。 この場合、ターゲットにソースに存在しないデータが含まれていると検証は適用されず、検証のパフォーマンスが低下します。
[移行の停止] を選択し、ターゲット テーブルにレコードが含まれている場合、完全移行中に移行がサポートされていないことを示すエラーが報告されます。 この場合、移行を続行する前に、ターゲット テーブル内のデータを処理する必要があります。
重要エラーを促すダイアログ ボックスで [復元] をクリックすると、データ伝送サービスはこのエラーを無視してデータの移行を続行します。 注意して進めてください。
増分同期
次の表では、[同期タイプの選択] ページで [増分同期] を選択した場合にのみ表示される、増分同期のパラメーターについて説明します。

パラメーター
説明
書き込み同時実行性
増分同期中にターゲットにデータを書き込むための同時実行性。 最大値は 512 です。 書き込み同時実行性が高いと、ターゲットに過度のストレスがかかり、ビジネスに影響を与える可能性があります。
増分同期レート制限
必要に応じて、増分同期レートを制限するかどうかを選択できます。 増分同期レートを制限することを選択した場合は、RPS と BPS を指定する必要があります。 RPS は、増分同期中にターゲットに同期されるデータ行の最大数を 1 秒あたりで指定し、BPS は、増分同期中にターゲットに同期されるデータの最大量をバイト単位で 1 秒あたりで指定します。
説明ここで指定された RPS 値と BPS 値は、調整専用です。 実際の増分同期のパフォーマンスは、ソースとターゲットの設定やインスタンスの仕様などの要因の影響を受けます。
増分同期の開始タイムスタンプ
[完全同期] を選択した場合、このパラメーターは使用できません。
[増分同期] を選択したが [完全同期] を選択しなかった場合は、データを同期する開始時点を指定します。 デフォルト値は現在のシステム時刻です。 詳細については、「増分同期のタイムスタンプを設定する」をご参照ください。
詳細パラメーター

パラメーター
説明
ターゲット テーブル ストレージ タイプ
このセクションは、ターゲットが OceanBase Database V4.3.0 以降であり、かつ [同期タイプの選択] ページで [スキーマ同期] を選択したか、または [増分同期] で [DDL 同期] を選択した場合にのみ表示されます。
このパラメーターは、スキーマ同期中または増分同期中のターゲット テーブル オブジェクトのストレージ タイプを指定します。 ターゲット テーブル オブジェクトでサポートされているストレージ タイプは、[デフォルト]、[行ストア]、[列ストア]、[ハイブリッド列ストア] です。 詳細については、「default_table_store_format」をご参照ください。
説明[デフォルト] 値は、ターゲットのパラメーター構成に基づいて他のパラメーターが自動的に設定されることを意味します。 スキーマ同期中のテーブル オブジェクトまたは増分 DDL 同期中の新しいテーブル オブジェクトの場合、スキーマは指定されたストレージ タイプに従います。
NULL 以外のユニーク キーのないテーブルに非表示列を追加する
このパラメーターは、同じ互換モードの OceanBase データベース間でデータを同期するタスクを作成する際に、[同期タイプの選択] ページで [スキーマ同期] を選択したか、増分同期に対して [DDL 同期] を選択した場合にのみ表示されます。 詳細については、「データ伝送サービスの隠し列メカニズム」をご参照ください。
[事前チェック] をクリックします。
事前チェック中、データ伝送サービスは、データベース ユーザーの読み取りおよび書き込み権限とデータベースのネットワーク接続を確認します。 データ同期タスクは、すべてのチェック項目に合格した後でのみ開始できます。 事前チェック中にエラーが返された場合は、次の操作を実行できます。
問題を特定してトラブルシューティングし、事前チェックを再実行します。
失敗した事前チェック項目の [アクション] 列で [スキップ] をクリックします。 操作の結果を促すダイアログ ボックスで、[OK] をクリックします。
事前チェックに合格したら、[タスクの開始] をクリックします。
タスクを今すぐ開始する必要がない場合は、[保存] をクリックします。 後で [同期タスク] ページで、またはバッチ操作を実行することで、タスクを手動で開始できます。 バッチ操作の詳細については、「データ同期タスクでバッチ操作を実行する」をご参照ください。
データ伝送サービスでは、同期タスクの実行中に同期オブジェクトを変更できます。 詳細については、「同期オブジェクトとそのフィルター条件を表示および変更する」をご参照ください。 データ同期タスクが開始されると、選択した同期タイプに基づいて実行されます。 詳細については、「データ同期タスクの詳細を表示する」をご参照ください。
ネットワーク障害またはプロセスの起動が遅いなどの理由でデータ同期タスクで実行例外が発生した場合は、同期タスクの [同期タスク] または [詳細] ページで [復元] をクリックできます。