異なる顧客とビジネスシナリオの多様なディザスタリカバリニーズに応えるため、OceanBaseデータベースは多様な高可用性ソリューションを提供しています:
Paxos一貫性プロトコルに基づくマルチレプリカ高可用性ソリューション
このソリューションはPaxos一貫性プロトコルに基づいて実装されており、通常は同一クラスタ内でマルチレプリカ(例:3レプリカまたは5レプリカ)を用いてディザスタリカバリ機能を提供します。
少数派レプリカが利用不能になった場合(3レプリカクラスタでは1つのレプリカ、5レプリカクラスタでは2つのレプリカの障害が許容される)、データベースは自動的にディザスタリカバリ切り替えを実行し、サービスを復旧します。これにより、データ損失(RPO = 0)を保証し、障害回復時間は8秒以内(RTO < 8s)です。
ログ非同期複製に基づく物理スタンバイデータベースソリューション
このソリューションは従来のデータベースのプライマリ/スタンバイレプリケーションソリューションと類似しています。2つ以上のクラスタ間で、テナント単位でRedoログを非同期複製することで、テナントレベルのプライマリ/スタンバイ関係を構築し、計画的な無損失切り替えと障害時の有損失切り替えという2種類のディザスタリカバリ機能を提供します。
このソリューションは主に、デュアルデータセンターまたはデュアルリージョンシナリオでのディザスタリカバリニーズを満たすために使用されます。プライマリテナントは読み書き機能を提供し、スタンバイテナントは読み取り専用およびディザスタリカバリ機能を提供します。計画的な無損失切り替えを実行する際、プライマリテナントとスタンバイテナントの役割が入れ替わり、データ損失(RPO = 0)は発生せず、切り替え時間は秒単位(RTOは秒単位)です。
プライマリテナントが配置されているクラスタで障害が発生した場合、有損失切り替えを実行して、スタンバイテナントをプライマリテナントに切り替えることができます。この場合、データ損失を完全に保証することはできず、RPOは0より大きくなりますが、切り替え時間は秒単位(RTOは秒単位)です。
アービトレーションに基づく高可用性ソリューション
このソリューションは、OceanBase V4.1.0バージョンで新たに提供された高可用性ソリューションです。独立したアービトレーションサービスを導入することで、より少ないレプリカ数で優れたディザスタリカバリ機能を提供できます。
ここでは、2つのフル機能レプリカと1つのアービトレーションサービスのデプロイアーキテクチャを例に説明します。1つのフル機能レプリカに障害が発生した場合、クラスタはアービトレーションサービスの参加のもと、自動的にディザスタリカバリのダウングレードを実行し、データ損失(RPO = 0)を保証し、切り替え時間は秒単位(RTOは秒単位)です。障害ノードのサービスが回復すると、クラスタは自動的に検出してサービスのアップグレードを実行し、障害前の可用能力を回復します。このプロセスでは、アービトレーションサービスは少量のメタ情報の同期と永続化のみに関与し、リソース消費(CPU/メモリ/ネットワークなど)は極めて小さいです。
上記の3種類の高可用性ソリューションは組み合わせて使用できます。OceanBaseデータベースは以下のような複数のデプロイモードを推奨しており、ユーザーはデータセンター構成およびパフォーマンスと可用性の要件に応じて柔軟に選択できます。
デプロイメントプラン |
ディザスタリカバリ能力 |
RTO |
RPO |
|---|---|---|---|
| 同一データセンター3レプリカ | (少数派レプリカ障害時)マシンレベル無損失ディザスタリカバリ/ラックレベル無損失ディザスタリカバリ | 8秒以内 | 0 |
| 同一都市内デュアルデータセンター物理スタンバイデータベース | (ホストデータセンター障害時)データセンターレベル有損失ディザスタリカバリ | 秒単位 | 0より大 |
| 同一都市内3データセンター3レプリカ | (少数派レプリカ障害時)データセンターレベル無損失ディザスタリカバリ | 8秒以内 | 0 |
| 2リージョン2データセンター物理スタンバイデータベース | (リージョン障害時)有損失ディザスタリカバリ | 秒単位 | 0より大 |
| 2リージョン3データセンター+物理スタンバイデータベース | (データセンター障害時)無損失ディザスタリカバリ/(リージョン障害時)有損失ディザスタリカバリ | 秒単位 | データセンター障害時、RPO = 0;リージョン障害時、RPO 0より大 |
| 3リージョン3データセンター5レプリカ | (リージョン障害時)無損失ディザスタリカバリ | 8秒以内 | 0 |
| 3リージョン5データセンター5レプリカ | (リージョン障害時)無損失ディザスタリカバリ | 8秒以内 | 0 |
同一データセンター3レプリカ
データセンターが1つしかない場合、3レプリカ以上をデプロイしてマシンレベルの無損失ディザスタリカバリを実現できます。単一のServerまたは少数派のServerがダウンした場合でも、業務サービスに影響を与えず、データは損失しません。データセンター内に複数のラックがある場合、各ラックに1つのZoneをデプロイすることで、ラックレベルの無損失ディザスタリカバリを実現できます。
同一都市内デュアルデータセンター物理スタンバイデータベース
同一リージョン内にデュアルデータセンターしかなく、データセンターレベルの災害復旧機能を実現したい場合は、物理スタンバイデータベースを採用し、各データセンターに1つのクラスタをデプロイできます。いずれかのデータセンターが利用不能になった場合、もう一方のデータセンターがビジネスサービスを引き継ぎます。スタンバイデータセンターも利用不能な場合、ビジネスデータは影響を受けず、サービスを継続して提供できます。本番データセンターが利用不能な場合、スタンバイデータベースを新しいプライマリデータベースとして有効化し、ビジネスサービスを引き継ぎます。ただし、スタンバイデータベースではすべてのデータの同期を保証できないため、データが失われる可能性があります。
同一リージョン内の3データセンター・3レプリカ構成
同一リージョン内に3つのデータセンターがある場合、各データセンターに1つのゾーンをデプロイすることで、データセンターレベルの無損失災害復旧機能を実現できます。いずれかのデータセンターが利用不能になった場合、残りの2つのデータセンターを使用してサービスを継続し、データは失われません。このデプロイメントアーキテクチャは物理スタンバイデータベースに依存しないため、リージョンレベルの災害復旧機能は備えていません。
2リージョン・2データセンター構成(物理スタンバイデータベース)
ユーザーがリージョンレベルの災害復旧を実現したいが、各リージョンにデータセンターが1つしかない場合、物理スタンバイデータベースアーキテクチャを採用できます。1つのリージョンをプライマリリージョンとして選択し、プライマリデータベースをデプロイし、もう1つのリージョンにスタンバイデータベースをデプロイします。スタンバイリージョンが利用不能になっても、プライマリリージョンのビジネスサービスには影響しません。プライマリリージョンが利用不能になった場合、スタンバイデータベースを新しいプライマリデータベースとして有効化してサービスを継続しますが、この場合ビジネスデータが失われる可能性があります。
さらに進んで、ユーザーは2リージョン・2データセンター構成を利用してデュアルアクティブを実現し、2組の物理スタンバイデータベースをデプロイすることで、2つのリージョンが相互にプライマリ/スタンバイとなります。これにより、リソースをより効率的に利用し、より高い災害復旧機能を実現できます。
2リージョン・3データセンター構成 + 物理スタンバイデータベース
ユーザーが異なる2つのリージョンに合計3つのデータセンターを持っている場合、「2リージョン・3データセンター構成 + 物理スタンバイデータベース」のソリューションを使用してリージョンレベルの災害復旧機能を提供できます。
2つのデータセンターを持つリージョンをプライマリリージョンと呼び、プライマリリージョンの2つのデータセンターにそれぞれ1つまたは2つのフル機能レプリカをデプロイし、データベースの読み書きサービスをプライマリリージョンで提供します。もう1つのリージョンのデータセンターには、アービトレーションサービスと物理スタンバイデータベースをデプロイし、災害復旧サービスを提供します。
プライマリリージョンの1つのデータセンターで障害が発生した場合、アービトレーションソースは自動的にダウングレードを実行し、ビジネスの秒単位での復旧を保証すると同時に、データは失われません。プライマリリージョンの2つのデータセンターで同時に障害が発生した場合、物理スタンバイデータベースをプライマリデータベースとして有効化してサービスを提供する必要があります。この場合、ビジネスには損失が生じ、RPO > 0となります。
3リージョン・3データセンター・5レプリカ構成
リージョンレベルの無損失災害復旧をサポートするために、Paxosプロトコルの原理から、少なくとも3つのリージョンが必要であることが証明されています。このソリューションは3つの都市を含み、各都市に1つのデータセンターがあります。最初の2つの都市のデータセンターにはそれぞれ2つのレプリカがあり、3番目の都市のデータセンターには1つのレプリカしかありません。2リージョン・3データセンター構成との違いは、トランザクションの実行ごとに少なくとも2つの都市に同期する必要があり、ビジネスが地理的に離れた場所でのレプリケーション遅延を許容する必要がある点です。
3リージョン・5データセンター・5レプリカ構成
3リージョン・5データセンター・5レプリカ構成と類似していますが、違いは3リージョン・5データセンター構成では、各レプリカを異なるデータセンターにデプロイし、データセンターの災害復旧機能をさらに強化している点です。