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

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