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