OceanBaseデータベースは、シェアードナッシング(Shared-Nothing)を基盤としたマルチレプリカアーキテクチャを採用しており、システム全体に単一障害点が存在しないため、システムの継続的な可用性を保証します。OceanBaseは、単一データセンター(単一データセンターへのOceanBaseクラスタデプロイ)、複数データセンター(同一都市内の複数データセンターへのOceanBaseクラスタデプロイ。データセンター以下、総称して:IDC)、都市(複数都市へのOceanBaseクラスタデプロイ)レベルでの高可用性と災害復旧をサポートしています。単一データセンター、二重データセンター、二地域三センター、三地域五センター構成でのデプロイが可能であり、アービトレーションサービスのデプロイによるコスト削減もサポートしています。
デプロイメントプラン
プラン1:同一リージョン内の3データセンター・3レプリカ構成
特長:
- 同一リージョン内の3つのデータセンターで1クラスタを構成します(各データセンターが1ゾーン)。データセンター間のネットワーク遅延は通常0.5~2msです。
- データセンターレベルの障害発生時でも、残りの2つのレプリカで過半数が維持され、RedoLogの同期が可能なため、RPO=0が保証されます。
- リージョンレベルの障害には対応できません。
構成図:

プラン2:3リージョン・5データセンター・5レプリカ構成
特長:
- 3つのリージョンで5レプリカのクラスタを構成します。
- いずれかのIDCまたはリージョンに障害が発生しても、過半数が維持され、RPO=0が保証されます。
- 過半数を維持するには3つ以上のレプリカが必要ですが、各リージョンに最大2つのレプリカしか配置できません。遅延を低減するため、リージョン1とリージョン2は互いに近距離に配置し、RedoLogの同期遅延を抑える必要があります。
構成図:

プラン3:同一リージョン内の2データセンター「プライマリ-スタンバイ」構成
特長:
- 各データセンターに1つのOceanBaseクラスタをデプロイします。1つをプライマリデータベース、もう1つをスタンバイデータベースとします。各クラスタは独立したPaxosグループを持ち、複数レプリカによる一貫性が保証されます。
- 「クラスタ間」のデータ同期はRedoLogを介して行われます。形式上は従来のデータベースの「プライマリ/セカンダリレプリケーション」モードに類似しており、プライマリデータベースからスタンバイデータベースへの「非同期/同期」処理は、Oracle Data Guardの「最大パフォーマンス」モードに類似しています。
構成図:

プラン4:2リージョン・3データセンター「プライマリ-スタンバイ」構成
特長:
- プライマリリージョンとスタンバイリージョンで5レプリカのクラスタを構成します。いずれかのプライマリリージョンのIDCに障害が発生しても、最大で2つのレプリカを損失するだけで、残りの3つのレプリカで過半数が維持されます。
- スタンバイリージョンに独立した3レプリカクラスタを構築し、スタンバイデータベースとしてプライマリデータベースから「非同期/同期」処理を行います。
- プライマリリージョンで障害が発生すると、スタンバイリージョンがビジネスを引き継ぎます。
構成図:

プラン5:同一リージョン内の3データセンターによるアービトレーションサービスのデプロイ
特長:
- 同一リージョン内の3つのデータセンターで1クラスタを構成し、データセンター間のネットワーク遅延は通常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を保証します。
- プライマリリージョンの障害には対応できませんが、スタンバイリージョンの障害には影響ありません。
デプロイメント図:
