OceanBaseデータベースは、シェアードナッシング(Shared-Nothing)を基盤としたマルチレプリカアーキテクチャを採用しており、システム全体に単一障害点が存在しないようにし、システムの継続的な可用性を保証します。OceanBaseは、単一データセンター(単一データセンターでのOceanBaseクラスタデプロイ)、複数データセンター(同一都市内の複数データセンターでのOceanBaseクラスタデプロイ。データセンター以下を総称して:IDC)、都市(複数都市でのOceanBaseクラスタデプロイ)レベルの高可用性と災害復旧をサポートしています。単一データセンター、二重データセンター、二地域三センター、三地域五センター構成でのデプロイが可能であり、アービトレーションサービスのデプロイによるコスト削減もサポートしています。
デプロイメントプラン
プラン1:同一都市内三データセンター三レプリカ構成
特長:
- 同一都市内の3つのデータセンターで1つのクラスタを構成します(各データセンターが1つのゾーン)。データセンター間のネットワーク遅延は通常0.5~2msです。
- データセンターレベルの災害発生時でも、残りの2つのレプリカで過半数が維持され、RedoLogの同期が可能なため、RPO=0を保証します。
- 都市レベルの災害には対応できません。
デプロイメント図:
プラン2:三地域五センター五レプリカ構成
特長:
- 3つの都市で、5レプリカのクラスタを構成します。
- いずれかのIDCまたは都市で障害が発生しても、過半数が維持され、RPO=0を保証します。
- 過半数を維持するには3つ以上のレプリカが必要ですが、各都市に最大でも2つのレプリカしか配置できません。遅延を低減するため、都市1と都市2は互いに近距離に配置し、RedoLogの同期遅延を抑える必要があります。
デプロイメント図:
プラン3:同一都市内二データセンター「プライマリ-スタンバイ」構成
特長:
- 各データセンターに1つのOceanBaseクラスタをデプロイし、1つをプライマリデータベース、もう1つをスタンバイデータベースとします。各クラスタには独立したPaxosグループがあり、マルチレプリカによる一貫性が保証されます。
- 「クラスタ間」ではRedoLogを介してデータを同期します。形式的には従来のデータベースの「プライマリ/レプリカレプリケーション」モードに類似しており、プライマリデータベースからスタンバイデータベースへの「非同期/同期的」伝送は、Oracle Data Guardの「最大パフォーマンス」モードに類似しています。
デプロイメント図:
プラン4:二地域三センター「プライマリ-スタンバイ」構成
特長:
- プライマリシティとスタンバイシティで5レプリカのクラスタを構成します。いずれかのプライマリシティIDCで障害が発生した場合、最大で2つのレプリカを損失する可能性がありますが、残りの3つのレプリカで過半数を維持できます。
- スタンバイシティに独立した3レプリカクラスタを構築し、スタンバイデータベースとして機能させます。プライマリデータベースからスタンバイデータベースへ「非同期または同期」でデータを転送します。
- プライマリシティで災害が発生した場合、スタンバイシティがビジネスを引き継ぎます。
デプロイメント図:
プラン5:同一都市内の3データセンターによるアービトレーションサービスのデプロイ
特長:
- 同一都市内の3つのデータセンターでクラスタを構成します。データセンター間のネットワーク遅延は通常0.5~2msです。そのうち2つのデータセンターにフル機能レプリカを配置し、それぞれを1つのゾーンとします。コスト削減のため、3つ目のデータセンターにアービトレーションサービスをデプロイします(ログ同期は不要)。
- データセンターレベルの災害が発生した場合、残りの2つのデータセンターのレプリカでプライマリを選択し、アービトレーションによる降格を実行することで(フル機能レプリカが配置されているデータセンターに障害が発生した場合)、RPO=0を保証します。
- 都市レベルの災害には対応できません。
アービトレーションサービスの詳細については、アービトレーションサービスの概要を参照してください。
デプロイメント図:
プラン6:3リージョン・5データセンターによるアービトレーションサービスのデプロイ
特長:
- 3つのリージョン、5つのデータセンターを構成します。リージョン1とリージョン2は距離が近く、フル機能レプリカをデプロイします。リージョン3にアービトレーションサービスをデプロイしてコストを削減します(ログ同期は不要)。
- いずれかのIDCで障害が発生した場合、残りのフル機能レプリカで過半数(3/4)を維持でき、RPO=0を保証します。
- 任意の2つのIDCまたはリージョンレベルで障害が発生した場合、障害が発生したのがすべてフル機能レプリカが配置されているデータセンターである場合、残りの2つのフル機能レプリカでは過半数(2/4)を維持できません。この場合、アービトレーションによる降格を実行してサービスを復旧し(障害が発生した2つのレプリカをLearnerに降格)、RPO=0を保証します。
- 過半数を維持するには3つ以上のレプリカが必要ですが、各リージョンには最大で2つのレプリカしか配置できません。遅延を削減するため、リージョン1とリージョン2は互いに近距離に配置する必要があります。これにより、RedoLogの同期遅延を低減できます。
デプロイメント図:
プラン7:2リージョン・3データセンターによるアービトレーションサービスのデプロイ
特長:
- プライマリシティに2つのデータセンターを設置し、それぞれに2つのゾーンを配置してフル機能レプリカをデプロイします。
- スタンバイシティに1つのデータセンターを設置し、アービトレーションサービスをデプロイすることで、デプロイコストとリージョン間帯域幅コストを削減できます。
- プライマリシティのいずれかのIDCで障害が発生した場合、最大で2つのレプリカを損失する可能性があり、その時点で過半数(2/4)を維持できない可能性があります。この場合、アービトレーションサービスをトリガーして降格を実行し、RPO=0を保証します。
- プライマリシティの災害には対応できません。スタンバイシティの災害には影響ありません。
デプロイメント図: