OceanBaseデータベースはマルチテナントアーキテクチャです。V4.0.0以前では、システムテナントとユーザーテナントの2種類のテナントしかサポートされていませんでした。V4.0.0以降では、Metaテナントという概念が導入されました。そのため、現在のバージョンではユーザーに可視されるテナントには3種類あります:システムテナント、ユーザーテナント、そしてMetaテナントです。
システムテナント
システムテナントはクラスタがデフォルトで作成されるテナントであり、クラスタのライフサイクルと同期しており、クラスタおよびすべてのテナントのライフサイクルを管理します。システムテナントにはログストリーム1号しかなく、単一ポイントへの書き込みのみをサポートし、拡張機能は備えていません。
システムテナントではユーザーテーブルを作成でき、すべてのユーザーテーブルとシステムテーブルのデータはログストリーム1号によってサービスが提供されます。システムテナントのデータはクラスタ固有のものであり、プライマリ/スタンバイクラスタ間の物理同期や物理バックアップ・リカバリはサポートされていません。
注意
システムテナントはクラスタ管理およびテナント管理を目的としており、完全なデータベース機能は提供されていません。本番環境や業務テストなどの用途には推奨されません。
ユーザーテナント
ユーザーテナントはユーザーが作成するテナントであり、外部に対して完全なデータベース機能を提供し、MySQLおよびOracleの2種類の互換モードをサポートします。ユーザーテナントは、複数のマシンにわたってサービス能力のスケールアップを可能にし、動的な拡張および縮小をサポートします。内部ではユーザーの設定に基づいて自動的にログストリームが作成および削除されます。
ユーザーテナントのデータはより強力なデータ保護と可用性が求められ、クラスタ間の物理同期や物理バックアップ・リカバリをサポートしています。典型的なデータには、スキーマデータ、ユーザーテーブルデータ、トランザクションデータなどが含まれます。
適用対象
OceanBaseデータベースCommunity Editionは、MySQLモードのみを提供しています。
Metaテナント
MetaテナントはOceanBaseデータベース内部で自己管理されるテナントであり、ユーザーテナントが作成されるたびにシステムは自動的に対応するMetaテナントを作成します。そのライフサイクルはユーザーテナントと同期しています。
Metaテナントは、ユーザーテナントのクラスタ固有データを格納および管理するために使用されます。このデータは、クラスタ間の物理同期や物理バックアップ・リカバリを必要としません。これらのデータには、構成パラメータ、位置情報、レプリカ情報、ログストリームの状態、バックアップ・リカバリ関連情報、コンパクション情報などが含まれます。
テナントの比較
ユーザーの観点から見ると、システムテナント、ユーザーテナント、およびMetaテナントの違いは以下の表に示されています。
| プロパティ | システムテナント | ユーザーテナント | Metaテナント |
|---|---|---|---|
| テナントID | 1 |
|
|
| テナント命名規則 | SYS | ユーザー定義、大文字と小文字の英字、数字、アンダースコアで構成されます | META${user_tenant_id} 例えば、ユーザーテナントのテナントIDが 1002の場合、対応するMetaテナントのテナント名はMETA$1002です |
| テナントタイプ | SYS | USER | META |
| データプロパティ | クラスタ専有データ、クラスタ間の物理同期および物理バックアップ復旧はサポートされていません | クラスタ非専有データ、クラスタ間の物理同期および物理バックアップ復旧はサポートされています | クラスタ専有データ、クラスタ間の物理同期および物理バックアップ復旧はサポートされていません |
| 拡張性 | データは水平スケールできず、ログストリームは1つしかありません | 水平スケーリング機能を備え、動的な拡張と縮小をサポートします | データは水平スケールできず、ログストリームは1つしかありません |
| テナント運用 |
|
|
|
| データ外部アクセスインターフェース | システムテナントのビュー |
|
Metaテナントには直接ログインできません。その情報はユーザーテナントおよびシステムテナントからアクセスできます。
|
テナントアーキテクチャ
テナントアーキテクチャは以下の図に示されています。ユーザーテナントとMetaテナントは一対一で対応し、システムテナントとMetaテナントは1つのログストリームしか持ちません。このログストリームはLogStream(略称:LS)です。ユーザーテナントでは、ログストリームを動的に作成および削除することがサポートされています。
