メインコンテンツまでスキップ

概要

概要

CCR(Cross クラスター Replication)は、データベースまたはテーブルレベルでソースクラスターからターゲットクラスターにデータ変更を同期するクロスクラスターデータ同期メカニズムです。主にオンラインサービスのデータ可用性向上、読み書き負荷の分離、デュアルサイト、3センターアーキテクチャの構築に使用されます。CCRは現在、コンピューティングとストレージの分離モードをサポートしていません。

適用シナリオ

CCRは以下の一般的なシナリオに適用されます:

  • 災害復旧バックアップ:企業データを別のクラスターやデータセンターにバックアップし、業務中断やデータ損失時のデータ復旧を保証します。金融、ヘルスケア、eコマースなどの業界では、通常このような高いSLAの災害復旧バックアップが必要です。

  • 読み書き分離:データクエリ操作と書き込み操作を分離することで、読み書き間の相互影響を軽減し、サービスの安定性を向上させます。高並行性や書き込み負荷の高いシナリオでは、読み書き分離を採用することで効果的に負荷を分散し、データベースのパフォーマンスと安定性を向上させることができます。

  • データ集約:グループの本社が異なる地域にある支社のデータを管理・分析し、データの不整合による管理の混乱や意思決定ミスを回避し、グループの管理効率と意思決定品質を向上させる必要があります。

  • 分離アップグレード:システムクラスターをアップグレードする際、CCRを使用して新しいクラスターで検証とテストを行い、バージョン互換性の問題によるロールバックの困難を回避できます。ユーザーはデータの一貫性を確保しながら、各クラスターを段階的にアップグレードできます。

  • クラスター移行:Dorisクラスターの移転や機器の交換時に、CCRを使用して古いクラスターから新しいクラスターにデータを同期し、移行プロセス中のデータの一貫性を確保できます。

ジョブカテゴリ

CCRは2つのタイプのジョブをサポートします:

  • データベースレベルジョブ:データベース全体のデータを同期します。
  • テーブルレベルジョブ:指定されたテーブルのデータのみを同期します。テーブルレベルの同期では、テーブルの名前変更や置換はサポートされていないことに注意してください。Dorisの各データベースでは一度に1つのスナップショットジョブしか実行できないため、テーブルレベル同期の完全同期ジョブは順番待ちが必要です。

原理とアーキテクチャ

用語

  • Source クラスター:データソースが存在するクラスター、通常は業務データが書き込まれるクラスター。
  • Target クラスター:クロスクラスター同期のターゲットクラスター。
  • binlog:ソースクラスターの変更ログで、スキーマとデータの変更が含まれます。
  • Syncer:データ同期を担当する軽量プロセス。
  • Upstream:データベースレベルジョブではアップストリームデータベース、テーブルレベルジョブではアップストリームテーブルを指します。
  • Downstream:データベースレベルジョブではダウンストリームデータベース、テーブルレベルジョブではダウンストリームテーブルを指します。

アーキテクチャ説明

CCR Architecture 詳細

CCRは主に軽量プロセスSyncerに依存しています。Syncerは、ソースクラスターからbinlogを取得し、ターゲットクラスターにメタデータを適用し、ターゲットクラスターにソースクラスターからデータを取得するよう通知することで、完全同期と増分同期を実現します。

原理

  1. 完全同期

    • CCRジョブは最初に完全同期を実行し、アップストリームデータを完全にダウンストリームにコピーします。
  2. 増分同期

    • 完全同期完了後、CCRジョブは増分同期を継続し、アップストリームとダウンストリーム間のデータの一貫性を維持します。
  3. 完全同期の再開

    • 増分同期をサポートしないDDL操作に遭遇した場合、CCRジョブは完全同期を再開します。増分同期をサポートしない具体的なDDL操作については、機能詳細を参照してください。
    • アップストリームのbinlogが期限切れやその他の理由で中断された場合、増分同期は停止し、完全同期を再開します。
  4. 完全同期の再開

    • 完全同期中は、増分同期が一時停止されます。
    • 完全同期完了後、ダウンストリームデータテーブルはアトミック置換を行い、データの一貫性を確保します。
    • 完全同期完了後、増分同期が再開されます。

同期方法

CCRは4つの同期方法をサポートします:

同期方法原理トリガータイミング
Full Syncアップストリームが完全バックアップを実行し、ダウンストリームがリストアを実行します。DBレベルジョブはDBバックアップをトリガーし、テーブルレベルジョブはテーブルバックアップをトリガーします。初回同期または特定の操作によってトリガーされます。トリガー条件については、機能詳細を参照してください。
Partial Syncアップストリームがテーブルまたはパーティションレベルのバックアップを実行し、ダウンストリームがテーブルまたはパーティションレベルのリストアを実行します。特定の操作によってトリガーされます。トリガー条件については、機能詳細を参照してください。
TXN増分データ同期で、アップストリームのコミット後に同期を開始します。特定の操作によってトリガーされます。トリガー条件については、機能詳細を参照してください。
SQLアップストリームのSQL操作をダウンストリームで再実行します。特定の操作によってトリガーされます。トリガー条件については、機能詳細を参照してください。

ダウンロード

要件:glibc >= 2.28

VersionArchTarballSHA256
2.1ARM64ccr-syncer-2.1.10-rc06-arm64.tar.xza2e56dc1909b065db98c037a037d6ec918dec7e20eb7cccbac9da729ce9be155
2.1X64ccr-syncer-2.1.10-rc06-x64.tar.xzebeebbe47a85c8b52f69394fd1d839663e3e7ca2cab93d7a443b44ec3f6d35ae
3.0ARM64ccr-syncer-3.0.6-rc05-arm64.tar.xzdd5f154c68007732c3c3a9f808f16a7f287fd742bd35d0272ef596779f0eb8e6
3.0X64ccr-syncer-3.0.6-rc05-x64.tar.xz77a4e4e2a74c376ffaef0207cfdef957729380fa3718418bccece015a41ad15a