業務データ、リアルタイム分析、AIワークロード——これまでバラバラだったものをひとつのデータベースに。OceanBase AI Database 詳細はこちら ->
業務データ、リアルタイム分析、AIワークロード——これまでバラバラだったものをひとつのデータベースに。OceanBase AI Database 詳細はこちら -> ->
事業が成長し、マイクロサービスの導入が進むと、注文、ユーザー、在庫、レポートなどのサービスごとに、独立したデータベースが必要になることがあります。開発、テスト、ステージング、本番の各環境に加え、顧客やチャネルごとにデータを分離する必要も出てきます。その結果、わずか1〜2年で、インスタンス数が十数個から100を超える規模に増えることもあります。これらを個別に管理していると、監視、変更作業、原因調査、復旧にかかる負担も増していきます。
分散データベースはノードやコンポーネントが多く、運用が難しそうに見えます。ただ、複数のデータベースインスタンスを個別に管理する環境でも、障害対応や原因調査、人員の確保が負担になることがあります。運用の複雑さを考えるうえでは、アーキテクチャに加え、日々の管理方法や運用手順も重要です。
インスタンスごとに個別管理を続ければ、数が増えるほど繰り返し作業や人的ミスのリスクも高まります。こうした作業の削減に役立つのが、統合管理プラットフォームと診断・復旧の自動化です。OceanBaseは、OCPによる統合管理、SQL診断、障害復旧の自動化を通じて、繰り返し発生する標準的な運用作業をプラットフォーム上で実行できるようにしています。
インスタンスごとの操作を減らすうえで役立つのが、管理窓口の一本化です。OCP(OceanBase Cloud Platform)は、OceanBaseのデータベースクラスタを管理する企業向けのプラットフォームです。データベースのカーネルと連携し、GUIによる管理機能を提供します。
OCPでは、クラスタ、テナント、ホスト、OBProxyのライフサイクル全体を管理できます。クラスタ、テナント、SQL、ホストの4つを対象に、200を超える監視メトリクスを備えています。単一クラスタで管理できるホスト数は最大1,000台です。複数インスタンスの集約と運用手順の標準化を進める場面では、一元管理によってDBAの定型作業を減らせます。アラート対応の一元化にもつながります。
多くの運用チームは、すでにスクリプトや監視ツール、あるいは自社開発の管理プラットフォームを使っています。OCPがどこで役立つのか、こうしたツールを使う日々の運用から考えてみましょう。
SSHやスクリプトは柔軟に使えますが、サーバーに1台ずつ接続する必要があれば、インスタンス数に応じて作業量も増えます。スクリプトの標準化や監査の仕組みが整っていないと、問題発生後に操作を追跡することも難しくなります。ZabbixやPrometheusなどでメトリクスを収集し、アラートを通知していても、その後の診断や対処につなげる必要があります。それぞれの作業がつながっていなければ、DBAはツールを切り替えたり、サーバーに接続したりしながら、調査と修復を進めることになります。
こうした作業をまとめるため、自社の要件に合わせて運用プラットフォームを開発することもできます。ただし、開発と保守に加え、データベースの新しいバージョンへの対応も必要です。また、データベースの種類によって管理ツールが異なると、複数の画面を行き来することになります。環境全体の状態把握や、データベースを横断した分析も難しくなります。
一元管理が役立つのは、アラートが届いた後も同じです。診断情報の確認から必要な操作の実行、結果の検証までを同じプラットフォームで行えると、対応もスムーズになります。ここからは、こうした作業を支えるOCPと関連ツールを紹介します。
OceanBaseは、OCPによる統合管理、SQL診断、障害復旧の自動化を通じて、日常管理から異常への対処までを支援します。ここでは、日常的な管理操作から紹介します。
日常操作の窓口をまとめても、「システムが遅い」と連絡を受けたときには、どこで、なぜ遅くなっているのかを調べる必要があります。SQLの性能を調べるには、いくつかの情報を照らし合わせることが大切です。OCPでは、異常の発見から診断、最適化の提案までを同じプラットフォームで扱えます。調査は次の3つのステップで進められます。
SQLの性能問題に加え、ノード停止やネットワーク異常もサービスの可用性に直接影響します。こうした場面では、サービスの早期復旧と、後で原因を調べるための情報収集が重要です。OceanBaseは、カーネルによる自動切り替え、プラットフォームの障害対応手順、診断ツールで、それぞれの作業を支援します。
OceanBaseはMulti-Paxosプロトコルを採用し、複数レプリカ間のデータ整合性を確保します。少数派のノードに障害が発生しても、過半数のレプリカが稼働していれば、自動でリーダーを選出します。人手による操作は不要です。
障害の状況 | 復旧方法 | 条件・補足 |
|---|---|---|
| 単一ノードの停止 | 自動でリーダーを選出して切り替え | 実際のRTOは配置構成やクライアントの再接続に依存 |
| 少数派レプリカのネットワーク分断 | 多数派がサービスを継続 | 過半数のレプリカが利用可能であることが前提 |
| ゾーン単位の障害 | 別のゾーンに自動切り替え | 同一リージョン内の3データセンター構成。過半数のレプリカが利用可能であることなどが条件 |
過半数のレプリカが利用可能であることなどの条件を満たせば、Paxosプロトコルにより、コミット済みトランザクションの消失を防げます(RPO = 0)。実際の復旧時間は、配置構成、クライアントの再接続、業務側のタイムアウト設定などにも左右されます。
カーネルによる自動切り替えに加え、OCPはプラットフォーム側での対処が必要な場面に備え、障害対応手順を提供します。障害発生時には、ログ、メトリクス、設定などを自動収集できます。対象はクラスタ、テナント、OBProxy、ホストの4種類です。
OCPには、OBServerの自動起動、テナントのCPUやメモリの増強、特定のSQLのPlanCache更新など、10種類を超える対応手順が用意されています。DBAは業務やリソースの使用状況に合わせて、リソース拡張の方法などを設定し、自動実行か手動実行かを選べます。手順の作成から実行、結果の監視と検証まで、プラットフォーム上で管理できます。
よくある障害への対処を事前に手順化しておけば、緊急時にも、その手順に沿って操作と検証を進められます。
サービスが復旧したら、同じ問題を繰り返さないよう、原因を調べます。診断ツールobdiagは、ログ、パラメータ、スタック、AWR、ASHなどを自動収集します。ワンクリックで根本原因分析を実行し、接続切断、ロック競合、ディスク容量不足、トランザクションのタイムアウトなどを調べられます。
インテリジェント診断Agentは自然言語での対話に対応し、ユーザーの意図に応じてobdiagの情報収集、分析、点検、根本原因分析を呼び出します。日常のヘルスチェックには、クラスタの点検機能や詳細点検パッケージも使えます。点検のタイムアウトを設定でき、クラスタの健全性に関する評価結果を出力します。
こうしたツールを日常管理や障害診断に取り入れると、DBAが時間をかける仕事も変わってきます。OCPと関連ツールは、日常点検、アラート対応、定期バックアップ、バージョンアップに含まれる操作を自動化し、繰り返し作業を減らします。
削減できた作業時間を、今後3〜6か月のリソース需要の見積もりや、テナントの分け方とリソース構成の設計に充てられます。業務特性を踏まえた検討が必要な課題に取り組んだり、インデックスやパラメータを継続的に見直したりする余裕も生まれます。
マルチテナント環境では、問題に関わるテナントとSQLを絞り込むことが特に重要です。OCPの診断情報は、この調査を支援します。また、経験豊富なDBAの調査ノウハウをプラットフォームの診断ルールとして整理すれば、経験の浅い担当者の調査にも役立てられます。
ここまで紹介したツールを、複数インスタンスの運用に当てはめてみましょう。個別に管理していたデータベースをOceanBaseに集約すると、DBAの日常業務はどのように変わるのでしょうか。インスタンス管理、日常操作、SQL調査、障害対応の4つの観点で見ていきます。
たとえば、100個のMySQLインスタンスを、1つのOceanBaseクラスタと100個のテナントに集約するケースを考えます。個別のインスタンス管理から、クラスタとテナントの一元管理に移行できます。点検、監視、バックアップ、バージョンアップを同じプラットフォームで管理することで、複数環境を個別に保守する作業が減り、リソースと運用のコスト削減につながります。
集約後の環境でも、日常的な保守は必要です。操作窓口をまとめることで、環境ごとに個別対応する作業を減らせます。OCPでは、パラメータを入力してテナントを作成し、リソース構成の変更やクラスタ単位のローリングアップグレードを実行できます。自動バックアップポリシーの設定やリストアの開始にも対応します。操作ログを使えば、後から操作履歴を追跡・監査できます。
OCPは公開APIも提供しており、Prometheus、Zabbix、SLS、OpenSearch、SSOなどの外部システムとの連携に対応します。企業がすでに利用している運用の仕組みに、OceanBaseを組み込めます。
性能に異常が見られたときも、統合プラットフォームが調査を支援します。OCPでは、スロークエリ、Top SQL、テナント負荷の異常に関するアラートを確認できます。診断レポートの生成、インデックスの推奨、実行計画のバインドも同じプラットフォームで行えます。これらの機能を通じて、分単位で根本原因を特定できるよう支援します。DBAはアラートから診断情報の確認、最適化へと進めるため、ツールの切り替えや手作業での情報収集を減らせます。
ノード障害時には、必要な構成条件を満たしていれば、Paxosによる自動リーダー選出がサービス復旧を支えます。OCPの障害対応手順は標準的な対処の実行を支援し、obdiagはその後の原因分析や振り返りに必要な診断情報を提供します。
通常のSQLの問題では、リアルタイム分析に基づく最適化の提案を活用できます。一方、ノード停止、ネットワークの不安定化、大規模クエリなどが業務の継続に影響している場合は、サービス復旧を優先し、その後に原因分析と振り返りを行います。
こうした運用の変化を、既存の方式と比較します。日常的な作業を軸に、スクリプト、監視ツール、自社開発のプラットフォーム、OCPがどのように運用を支えるかを整理します。
次の表は、SSHやスクリプトを使い、MySQLのインスタンスを個別に操作する環境を比較対象としています。
運用作業 | MySQL複数インスタンスの個別操作 | OceanBase + OCP |
|---|---|---|
| 日常管理 | SSHとスクリプトで個別に操作 | GUIでクラスタとテナントを一元管理 |
| 監視・アラート | 監視とアラートを個別に設定 | OCPで監視とアラートを一元管理 |
| SQL診断 | スロークエリログと実行計画を確認 | SQL診断レポートと最適化の提案を確認 |
| 障害復旧 | 手動でプライマリデータベースを切り替え | Paxosによる自動切り替えとOCPの障害対応手順 |
| バージョンアップ | インスタンスごとに停止して更新 | クラスタ単位でローリングアップグレードを実行 |
| バックアップ・リストア | バックアップスクリプトと定期ジョブを保守 | 定期バックアップポリシーを設定し、画面からリストアを開始 |
すでに監視プラットフォームを使っている場合、次に注目したいのは、アラートが届いた後の対応です。診断情報をどう取得し、必要な操作をどう実行するのか。各工程でOCPが提供する支援を見てみます。
運用作業 | 監視側での作業・連携 | OCPが提供する支援 |
|---|---|---|
| 異常の発見 | メトリクスを収集し、アラートを通知 | クラスタ、テナント、SQL、ホストの状態を踏まえて問題を確認 |
| 変更作業 | アラート後の対処を操作手順につなぐ | GUIから作成、リソースの拡張・縮小、バージョンアップ、バックアップを実行 |
| SQL調査 | 監視情報を基に診断を進める | SQL診断レポート、インデックス推奨、実行計画のバインド |
| 障害対応 | アラートを対応手順につなぐ | 障害対応手順を実行し、obdiagで情報を収集 |
| システム連携 | 企業の監視基盤に組み込む | 外部監視システムと連携し、運用情報を共有 |
OCPは監視と管理・診断・対処をつなぎます。PrometheusやZabbixなどの既存ツールとも連携でき、企業全体の運用基盤に組み込めます。
監視と対処の工程を、自社開発のプラットフォームでつなぐチームもあります。この場合に考えたいのは、開発と保守にどれだけの作業が必要か、という点です。自社で作る部分と、OceanBase向けのツールでまかなえる部分を整理します。
比較項目 | 自社開発の運用プラットフォーム | OceanBase + OCP |
|---|---|---|
| 開発・保守 | 自社で開発し、継続的に保守 | 管理機能を標準で提供し、バージョンアップで更新 |
| データベース固有の概念への対応 | 個別の対応が必要 | クラスタ、テナント、SQL、Compactionなどを標準で認識 |
| 診断機能 | 自社で開発、または他の機能を組み込む | SQL診断、デッドロック検知、容量評価を内蔵 |
| 障害対応 | 自社で開発、または他の機能を組み込む | 10種類以上の障害対応手順とobdiagを提供 |
| 新バージョンへの対応 | データベースの更新に合わせて自社で対応 | OceanBaseのバージョンに合わせて進化 |
自社開発の運用プラットフォームは、業務要件に合わせて柔軟にカスタマイズできます。その一方で、継続的な開発・保守や、データベースのバージョン変更、新機能への対応も必要です。OCPはOceanBase向けの管理ツールとして、管理機能と診断機能を標準で備えています。データベースのバージョンに合わせて機能が更新されるため、チームが自ら開発・対応する作業を減らせます。
運用方式を選ぶときは、チームが今使っているツールや手順との相性も大切です。次の表に、各方式で特に確認したい点をまとめました。自社環境と照らし合わせて評価できます。
方式 | 運用の支援方法 | 確認したい点 |
|---|---|---|
| MySQL複数インスタンス + スクリプト | スクリプトで日常操作を実行 | インスタンスごとの作業量、スクリプトの標準化と監査の仕組み |
| MySQL + Zabbix/Prometheus | メトリクス収集とアラート通知を集約 | アラートから診断、変更作業、障害対応へのつながり |
| 自社開発の運用プラットフォーム | 自社要件に合わせて機能を開発 | 開発・保守の負担、データベースのバージョンへの対応 |
| OceanBase + OCP | 一元管理にSQL診断、Paxos、障害対応手順を組み合わせる | インスタンスの集約範囲、手順の標準化の程度、配置構成と復旧の条件 |
運用にかかる手間や人員は、構成や業務の負荷、チームの経験によっても変わります。自社の環境に当てはめて考えることが大切です。
ここでは、ショート動画・ライブ配信サービスを運営する企業の事例を紹介します。同社では、事業の成長とともに保存データ量とアクセス量が増え、複数インスタンスの運用が課題になっていました。
出典:公開事例および顧客による発表。効果は業務規模やデプロイアーキテクチャによって異なります。
分散データベースではノードやコンポーネントが増えますが、運用が複雑になるかどうかは、管理や障害対応の進め方にも左右されます。OceanBaseは、次の機能で運用を支えます。
これらの機能によって繰り返し作業を減らし、DBAは容量計画、アーキテクチャの管理、業務の最適化に、より多くの時間を充てられるようになります。

分散データベースで高可用性を設計する際、2ノードのプライマリ・スタンバイのような偶数レプリカ構成には根本的な弱点があります。ノード障害やネットワーク分断が起きると過半数を確保できず、安全に新しいリーダーを選べなくなるためです。 この問題への一般的な対策は、3つ目の参加者を加えて投票総数を奇数にすることです。そうすれば、スプリットブレインを防ぎながら合意形成を進めやすくなります。 ただし、この3つ目の参加者が必ずしも完全なデータレプリカである必要はありません。必要なのは、投票に参加し、障害時にクラスタの合意形成を支えることです。OceanBase 4.xでは、この役割を「アービトレーションサービ...


はじめに:サービスは稼働中。しかし、そのデータは本当に正しいのか? 2021年、Meta社は数十万台のマシンを対象に18ヶ月間にわたり実施した監視調査をまとめた研究論文「Silent Data Corruptions at Scale」を発表し、サイレントエラーを引き起こすCPUが数百個も検出されたことを明らかにしました。結論として、サイレントデータ破損(Silent Data Corruption: SDC)は、特定のハードウェアにおける偶発的な故障ではなく、「世代を超えたシステム的な課題(systemic problem)」であると明確に指摘されています。同年、Google社も論文を発表し...


ベクトル検索を本番環境で使うには、検索速度に加え、データが増えたときの拡張性や運用コストも考える必要があります。数百万件では快適に動いていたシステムでも、数億件になると、応答の遅延やメモリ不足への対応が課題になります。 OceanBaseは、日々の業務を支えるトランザクション処理と、意味や類似度に基づくベクトル検索を一つのデータベースで扱えます。データを複数のサーバーに分散する仕組みと、独自開発のベクトル検索ライブラリ「VSAG」を組み合わせ、データの増加に対応しながら、検索性能とコストの両立を図ります。 その基盤となるのは、業務処理や分析処理の性能を測るTPCベンチマークで世界記録を達成した...
