異なる顧客やビジネスシナリオにおける多様なディザスタリカバリニーズを満たすため、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 |
| 同一都市の2データセンターによる物理スタンバイデータベース構成 | (本番データセンター障害時)データセンターレベル損失ディザスタリカバリ | 数秒 | 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レプリカ以上をデプロイすることで、マシンレベルの無損失ディザスタリカバリを実現できます。単一のサーバーまたは少数のサーバーがダウンしても、業務サービスに影響を与えず、データも欠落しません。データセンター内に複数のラックがある場合は、各ラックに1つのゾーンをデプロイすることで、ラックレベルの無損失ディザスタリカバリを実現できます。
同一都市内の2データセンターによる物理スタンバイデータベース構成
同一都市内に2つのデータセンターしかなく、データセンターレベルのディザスタリカバリ機能を実現したい場合は、物理スタンバイデータベースを採用できます。各データセンターに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データセンター構成では各レプリカを異なるデータセンターに配置し、データセンターのディザスタリカバリ能力をさらに強化する点です。