OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
アイコン

OceanBaseデータベース

V4.3.5

    OceanBase logo

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについて法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBaseデータベース
    3. V4.3.5
    アイコンOceanBaseデータベース
    V 4.3.5
    • V 4.3.5

    高可用アーキテクチャの概要

    最終更新日:2026-04-09 02:53:56  更新
    シェア
    このページの内容
    OceanBaseデータベースのアーキテクチャ
    高可用性

    折りたたみ

    シェア

    OceanBaseデータベースのアーキテクチャと実装方法は、データの強い一貫性、完全性、および高可用性を保証します。

    OceanBaseデータベースのアーキテクチャ

    図に示すように、データサービス層はOceanBaseデータベースクラスタを表します。このクラスタは3つのサブクラスタ(ゾーン)で構成されており、1つのゾーンは複数の物理マシンで構成され、各物理マシンはデータノード(OBServerノード)と呼ばれます。OceanBaseデータベースはShared-Nothingの分散アーキテクチャを採用しており、各データノードは対等です。

    OceanBaseデータベースに保存されるデータは、1つのゾーン内の複数のデータノードに分散して配置され、他のゾーンには複数のデータレプリカが格納されます。図に示すOceanBaseデータベースクラスタのデータには3つのレプリカがあり、各ゾーンに1つずつ配置されています。これら3つのゾーンが一体となってデータベースクラスタを形成し、ユーザーにサービスを提供します。

    デプロイ方式によって、OceanBaseデータベースはさまざまなレベルの災害復旧機能を実現できます:

    • サーバー(Server)レベルの無損失災害復旧:単一のサーバーが利用不可能になった場合でも、自動的に無損失で切り替えることができます。

    • データセンター(Zone)レベルの無損失災害復旧:単一のデータセンターが利用不可能になった場合でも、自動的に無損失で切り替えることができます。

    • リージョン(Region)レベルの無損失災害復旧:特定の都市全体が利用不可能になった場合でも、自動的に無損失で切り替えることができます。

    データベースクラスタが1つのデータセンターの複数のサーバーにデプロイされている場合、サーバーレベルの災害復旧が実現されます。クラスタのサーバーが1つのリージョン内の複数のデータセンターに配置されている場合、データセンターレベルの災害復旧が実現されます。クラスタのサーバーが複数のリージョンの複数のデータセンターに配置されている場合、リージョンレベルの災害復旧が実現されます。

    OceanBaseデータベースの災害復旧機能は、RPO=0、RTO<8秒という国標最高の6級基準を達成できます。

    高可用性

    OceanBaseの分散クラスタでは、複数のマシンが同時にデータベースサービスを提供し、その高可用性を実現しています。上図では、アプリケーション層からのリクエストはプロキシサービス(ODP、またはobproxyとも呼ばれる)に送信されます。プロキシサービスによるルーティングを経て、実際のサービスデータを提供するデータベースノード(OBServerノード)に送信され、リクエストの結果は逆の経路でアプリケーション層に返されます。このプロセス全体において、異なるコンポーネントがそれぞれ独自の方法で高可用性を実現しています。

    データベースノード(OBServerノード)で構成されるクラスタでは、すべてのデータがパーティション単位で保存され、高可用性サービスが提供されます。各パーティションには複数のレプリカが存在します。一般的に、一つのパーティションの複数のレプリカは複数の異なるゾーンに分散配置されます。複数のレプリカのうち、変更操作を受け入れるのは主レプリカ(Leader)のみであり、他はフォロワーレプリカ(Follower)と呼ばれます。主レプリカとフォロワーレプリカ間では、Multi-Paxosに基づく分散合意プロトコルによってデータの一貫性が保証されています。主レプリカが存在するノードに障害が発生した場合、新たなプライマリノードが選出され、サービスを継続します。

    選出サービスは高可用性の基盤です。OceanBaseデータベースの以前のバージョンとは異なり、V4.x系では選出サービスの粒度がパーティションからログストリームへと変更され、パーティションはログストリーム上にマウントされます。ログストリームの複数のレプリカのうち、選出プロトコルによって一つが主レプリカ(Leader)として選ばれます。この選出は、クラスタの再起動時や主レプリカに障害が発生した場合に行われます。

    さらに、V4.x系では選出サービスはNTPや他の時計同期サービスに依存せず、ローカル時計と改良されたレンタル機構によってクラスタ内の各マシンの時計の一貫性を保証します。選出サービスは優先順位メカニズムによって、より適切なレプリカを主レプリカとして選択することを保証しており、この優先順位メカニズムはユーザー指定のPrimaryゾーンやマシンの異常状態などを考慮します。

    主レプリカがサービスを開始すると、ユーザーの操作によって新たなデータの変更が生じ、すべての変更はログとして生成され、他のスタンバイレプリカ(Follower)に同期されます。OceanBaseデータベースがログ情報を同期するプロトコルはMulti-Paxos分散合意プロトコルです。Multi-Paxosプロトコルは、合意が必要なログ情報がレプリカリスト内の過半数のレプリカに永続化された後に保証されるため、少数派のレプリカに障害が発生しても情報は失われません。Multi-Paxosプロトコルによる複数のレプリカへの同期は、少数のノードに障害が発生した場合でも、システムの二つの重要な特性を保証します:データの損失がないこと、サービスの停止がないことです。ユーザーが書き込んだデータは少数のノードの障害に耐えることができ、またノードに障害が発生した場合でも、システムは常に自動的に新しいレプリカを主レプリカとして選出し、データベースのサービスを継続します。

    OceanBaseデータベースの各テナントにはグローバルタイムスタンプサービス(GTS)も備えており、テナント内で実行されるすべてのトランザクションに対して、トランザクションの読み取りスナップショットバージョンとコミットバージョンを提供し、グローバルなトランザクションの順序を保証します。グローバルタイムスタンプサービスに異常が発生すると、テナントのトランザクション関連操作に影響が及びます。OceanBaseデータベースは、パーティションレプリカと同一の仕組みを用いてグローバルタイムスタンプサービスの信頼性と可用性を保証しています。テナント内のグローバルタイムスタンプサービスの実際の位置は、特別なパーティションによって決定され、この特別なパーティションも他のパーティションと同様に複数のレプリカを持ち、選出サービスによって一つの主レプリカが選ばれます。主レプリカが存在するノードがグローバルタイムスタンプサービスのノードとなります。このノードに障害が発生した場合、特別なパーティションは別のレプリカを主レプリカとして選出し、グローバルタイムスタンプサービスも自動的に新しい主レプリカのノードに移行してサービスを継続します。

    以上がデータベースクラスタノードが高可用性を実現するための主要なコンポーネントです。プロキシサービス(ODP、またはobproxyとも呼ばれる)もまた、そのサービスを保証するために高可用性が求められます。ユーザーのリクエストは最初にプロキシサービスに到達し、プロキシサービスが正常でなければユーザーのリクエストは正常に処理されません。プロキシサービスはまた、データベースクラスタノードの障害を処理し、それに応じたフォールトトレランス処理を行う必要があります。

    プロキシサービスはデータベースクラスタとは異なり、永続化された状態を持たず、その業務に必要なすべてのデータ情報はデータベースサービスへのアクセスによって得られるため、プロキシサービスの障害によってデータが失われることはありません。プロキシサービスも複数のノードで構成されるクラスタサービスであり、ユーザーのリクエストが具体的にどのプロキシサービスノードで実行されるかは、ユーザーのF5やその他のロードバランシングコンポーネントが担当します。また、プロキシサービスの特定のノードに障害が発生した場合も、ロードバランシングコンポーネントが自動的に除外し、その後のリクエストが障害ノードに送信されないようにします。

    プロキシサービスの動作過程では、データベースクラスタの状態をリアルタイムで監視します。一方でプロキシサービスはクラスタのシステムテーブルをリアルタイムで取得し、システムテーブルを通じて各マシンのヘルス状態とパーティションのリアルタイム位置を把握します。他方でプロキシサービスはネットワーク接続を通じてデータベースクラスタノードのサービス状態を検出し、異常が発生した場合は該当ノードを障害状態としてマークし、適切なサービス切り替えを行います。

    前のトピック

    ディスクのサイレントエラーの検出
    最後

    次のトピック

    プロキシの高可用性
    次
    このページの内容
    OceanBaseデータベースのアーキテクチャ
    高可用性