データベースシステムは、アプリケーションアーキテクチャにおいてデータストレージとクエリ機能を担っており、企業のデータセキュリティと業務継続性の確保にとって極めて重要です。高可用性は、データベースシステムのアーキテクチャ設計において最優先で考慮すべき要素であり、その要求事項にはサービスの高可用性とデータの高信頼性が含まれます。本記事では、OceanBaseのサービス高可用性技術について説明します。データの高信頼性技術については、後のバックアップ・リカバリの章で詳しく説明します。
OceanBaseデータベースは、クラスタ内のマルチレプリカ災害復旧やアービトレーションに基づく災害復旧、およびクラスタ間の物理的スタンバイデータベースによる災害復旧など、多様なサービス高可用性技術を備えています。
マルチレプリカ災害復旧
OceanBaseデータベースは、Paxosプロトコルに基づいてマルチレプリカ災害復旧ソリューションを実装しており、ユーザーに対して少数派ノード障害時にRPO = 0、RTO < 8秒という高可用性を提供します。
マルチレプリカ災害復旧技術は単一クラスタ向けであり、トランザクションログを永続化し、複数のレプリカ間で同期します。Paxosプロトコルに基づき、ログデータが過半数のレプリカに正常に永続化されることを保証すると同時に、メンバー変更を通じて災害復旧機能を提供します。
マルチレプリカ災害復旧は、クラスタ内の少数派ノード異常に対応しており、非常に優れた障害復旧速度とデータのゼロ損失能力を備えています。リージョンをまたいだ遠隔地災害復旧(3リージョン5データセンター構成は受け入れられない)や、より高い可用性要件(例:過半数ノード異常、ソフトウェア上のバグなど)に対処するためには、物理的スタンバイデータベースによる災害復旧を採用できます。
アービトレーションに基づく災害復旧
アービトレーションに基づく災害復旧ソリューションは、OceanBaseデータベースがPaxosマルチレプリカ災害復旧ソリューションを基盤として革新的に提供する高可用性ソリューションです。
ビジネスレベルでは、アービトレーション方式はデータが過半数のレプリカ(4つのフル機能レプリカ + 1つのアービトレーションサービス)またはすべてのレプリカ(2つのフル機能レプリカ + 1つのアービトレーションサービス)上で強力な同期を保証し、フル機能レプリカの半数が障害を起こした場合に自動的に障害ダウングレードを行い、データ損失を防ぎながら業務の継続的な可用性を確保します。
アービトレーションに基づく災害復旧は、従来のデータベースの最大保護または最大可用性方式において、業務サービスの継続性とデータの整合性を両立させることができないという問題を同時に解決し、ブレインリープリスクを回避できます。また、ユーザーのローカリティ設定に基づき、OceanBaseデータベースは複数のフル機能レプリカが存在するデータベースノード上で読み書きサービスを提供できます。
過半数に基づく災害復旧方式と同様に、アービトレーションに基づく災害復旧方式もクラスタ内のソリューションであり、過半数またはすべてのレプリカ障害時のデータ保護および可用性の問題を解決することはできません。
物理的スタンバイデータベースによる災害復旧
物理的スタンバイデータベースによる災害復旧は、OceanBaseデータベースの高可用性ソリューションの重要な構成要素です。
物理的スタンバイデータベースによる災害復旧技術は複数のクラスタに対応し、複数クラスタ間でトランザクションログを転送し、ログに基づく物理的ホットスタンバイサービスを構築します。OceanBaseデータベースV4.2.0バージョンでは、物理的スタンバイデータベースは独立したプライマリ/スタンバイ構成を採用しており、プライマリ/スタンバイ関係はテナントレベルで存在します。プライマリとスタンバイ間はネットワーク直接接続または第三者ログサービスを介して転送チャネルを確立し、ログのみを転送します。以前のバージョンの集中型アーキテクチャとは異なり、独立したプライマリ/スタンバイ構成では各クラスタが相互に独立しており、ユーザーはより柔軟にクラスタを管理できます。
テナントレベルのプライマリ/スタンバイは非同期ログ同期を行うため、最大パフォーマンスモードのみをサポートし、最大保護モードおよび最大可用性モードはサポートしていません。災害復旧切り替え時にデータの強い一貫性を保証する必要がある場合は、マルチレプリカ災害復旧方式またはアービトレーションに基づく災害復旧方式を採用する必要があります。