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