概要
概要
CCR(Cross クラスター Replication)は、データベースまたはテーブルレベルでソースクラスターからターゲットクラスターにデータ変更を同期するクラスター間データ同期メカニズムです。主にオンラインサービスのデータ可用性の向上、読み書き負荷の分離、および「二拠点三センター」アーキテクチャの構築に使用されます。CCRは現在、計算と保存の分離モードをサポートしていません。
適用シナリオ
CCRは以下の一般的なシナリオに適用されます:
-
災害復旧バックアップ: 企業データを別のクラスターおよびデータセンターにバックアップし、ビジネス中断やデータ損失の場合にデータ復旧を確保します。金融、医療、電子商取引などの業界では通常、この高SLA災害復旧バックアップが必要です。
-
読み書き分離: データクエリ操作と書き込み操作を分離することで、読み取りと書き込み間の相互影響を削減し、サービスの安定性を向上させます。高同時実行または書き込み負荷が高いシナリオでは、読み書き分離の採用により効果的に負荷を分散し、データベースのパフォーマンスと安定性を改善できます。
-
データの一元化: グループの本社が異なる地域にある支社のデータを管理・分析する必要があり、データの不整合による管理の混乱や意思決定エラーを回避し、グループの管理効率と意思決定品質を向上させます。
-
分離されたアップグレード: システムクラスターのアップグレード時にCCRを使用することで、新しいクラスターで検証とテストを行い、バージョン互換性の問題によるロールバックの困難を回避できます。ユーザーはデータの一貫性を確保しながら各クラスターを段階的にアップグレードできます。
-
クラスターマイグレーション: Dorisクラスターの移転や機器の交換時にCCRを使用することで、古いクラスターから新しいクラスターにデータを同期し、マイグレーション過程でのデータ一貫性を確保できます。
ジョブカテゴリ
CCRは2種類のジョブをサポートします:
- データベースレベルジョブ: データベース全体のデータを同期します。
- テーブルレベルジョブ: 指定されたテーブルのデータのみを同期します。テーブルレベル同期はテーブルの名前変更や置換をサポートしないことに注意してください。Dorisの各データベースでは一度に1つのスナップショットジョブのみ実行できるため、テーブルレベル同期の完全同期ジョブはキューに並ぶ必要があります。
原理とアーキテクチャ
用語
- ソースクラスター: データソースが存在するクラスター、通常ビジネスデータが書き込まれるクラスターです。
- ターゲットクラスター: クラスター間同期のターゲットクラスターです。
- binlog: ソースクラスターの変更ログで、スキーマとデータの変更が含まれます。
- Syncer: データ同期を担当する軽量プロセスです。
- Upstream: データベースレベルジョブでは上流データベース、テーブルレベルジョブでは上流テーブルを指します。
- Downstream: データベースレベルジョブでは下流データベース、テーブルレベルジョブでは下流テーブルを指します。
アーキテクチャ説明

CCRは主に軽量プロセス:Syncerに依存しています。Syncerはソースクラスターからbinlogを取得し、ターゲットクラスターにメタデータを適用し、ソースクラスターからデータを取得するようターゲットクラスターに通知することで、完全同期と増分同期を実現します。
原理
-
完全同期:
- CCRジョブはまず完全同期を実行し、上流データを完全に下流にコピーします。
-
増分同期:
- 完全同期が完了した後、CCRジョブは増分同期を継続し、上流と下流間のデータ一貫性を維持します。
-
完全同期の再開:
- 増分同期をサポートしないDDL操作に遭遇した場合、CCRジョブは完全同期を再開します。増分同期をサポートしない具体的なDDL操作については、機能詳細を参照してください。
- 上流binlogが有効期限やその他の理由により中断された場合、増分同期は停止し、完全同期を再開します。
-
完全同期の再開:
- 完全同期中は増分同期が一時停止されます。
- 完全同期が完了すると、下流データテーブルはアトミックな置換を行い、データ一貫性を確保します。
- 完全同期が完了すると、増分同期が再開されます。
同期方法
CCRは4つの同期方法をサポートします:
| 同期方法 | 原理 | トリガータイミング |
|---|---|---|
| Full Sync | 上流が完全バックアップを実行し、下流がリストアを実行します。DBレベルジョブはDBバックアップをトリガーし、テーブルレベルジョブはテーブルバックアップをトリガーします。 | 初回同期または特定の操作によりトリガーされます。トリガー条件については、機能詳細を参照してください。 |
| Partial Sync | 上流がテーブルまたはパーティションレベルのバックアップを実行し、下流がテーブルまたはパーティションレベルのリストアを実行します。 | 特定の操作によりトリガーされます。トリガー条件については、機能詳細を参照してください。 |
| TXN | 増分データ同期で、上流がコミット後に同期を開始します。 | 特定の操作によりトリガーされます。トリガー条件については、機能詳細を参照してください。 |
| SQL | 上流のSQL操作を下流で再実行します。 | 特定の操作によりトリガーされます。トリガー条件については、機能詳細を参照してください。 |
ダウンロード
要件: glibc >= 2.28
| バージョン | アーキテクチャ | Tarball | SHA256 |
|---|---|---|---|
| 2.1 | ARM64 | ccr-syncer-2.1.10-rc06-arm64.tar.xz | a2e56dc1909b065db98c037a037d6ec918dec7e20eb7cccbac9da729ce9be155 |
| 2.1 | X64 | ccr-syncer-2.1.10-rc06-x64.tar.xz | ebeebbe47a85c8b52f69394fd1d839663e3e7ca2cab93d7a443b44ec3f6d35ae |
| 3.0 | ARM64 | ccr-syncer-3.0.6-rc05-arm64.tar.xz | dd5f154c68007732c3c3a9f808f16a7f287fd742bd35d0272ef596779f0eb8e6 |
| 3.0 | X64 | ccr-syncer-3.0.6-rc05-x64.tar.xz | 77a4e4e2a74c376ffaef0207cfdef957729380fa3718418bccece015a41ad15a |
| 4.0 | ARM64 | ccr-syncer-4.0.1-rc01-arm64.tar.xz | ed9decc7da157afa7f42ea696babc02f13b9a809a418f80e23e45a8afb347618 |
| 4.0 | X64 | ccr-syncer-4.0.1-rc01-x64.tar.xz | 9f2a049bb2cf107be1a4f79081c1e9da204ebebc410104793996dce3beb87865 |