OceanBaseデータベースV4.xのビュー体系は、大まかに5つのカテゴリに分けられます:OceanBase独自ビュー、MySQL互換ビュー、Oracle互換ビュー、MySQLから移植したOracleビュー、およびシステムテナントから移植したOracleビューです。体系の概要は以下の表のとおりです。
ビュー体系 |
カテゴリ |
形式 |
|---|---|---|
| OceanBase独自ビュー | データディクショナリビュー | DBA_OB_* |
| CDB_OB_* | ||
| 動的性能ビュー | GV$OB_* | |
| V$OB_* | ||
| MySQL互換ビュー | データディクショナリビュー | information_schema.* |
| mysql.* | ||
| Oracle互換ビュー | データディクショナリビュー | SYS.DBA_*、SYS.USER_*、SYS.ALL_* |
| 動的性能ビュー | SYS.V$*、SYS.GV$* | |
| MySQLテナントから移植したOracleビュー | データディクショナリビュー | oceanbase.DBA_* |
| 動的性能ビュー | oceanbase.V$*、oceanbase.GV$* | |
| システムテナントから移植したOracleビュー | データディクショナリビュー | oceanbase.CDB_* |
OceanBase独自のビュー
OceanBase独自のビューには、データディクショナリビューと動的性能ビューの2種類があります。
データディクショナリビューの形式は
DBA_OB_*およびCDB_OB_*です:DBA_OB_*: システムテナントで参照可能なビューで、システムテナントが管理するデータベースオブジェクト情報を表示します。すべてのテナントで参照可能なビューでは、OceanBase固有のテナントレベルデータベースオブジェクト情報を表示します。CDB_OB_*: システムテナント内で、すべてのテナントのデータベースオブジェクト情報にアクセスします。一般的に、これらはテナントレベルのデータディクショナリビューDBA_OB_*に対応します。
動的性能ビューの形式は
GV$OB_*およびV$OB_*です:GV$OB_*: クラスタ全体の稼働状態とパフォーマンス指標情報を表示するために使用されます。この種のビューはクラスタ全体でアクセス可能で、グローバルな状態情報を提供します。 アクセス権限によって、以下のように区別されます:- SYSテナントからアクセスする場合、すべてのテナントの情報が表示されます。
- 通常のテナントからアクセスする場合、現在のテナントの情報が表示されます。
V$OB_*: クライアントが接続したノードの稼働状態とパフォーマンス指標情報を表示するために使用されます。この種のビューは、クライアントが接続したノードの状態情報の提供にのみ使用できます。他のノードの状態情報にアクセスする必要がある場合は、GV$OB_*ビューを使用してください。
MySQL互換ビュー
MySQL互換ビューには、データディクショナリビューの2つの形式のみが含まれます:
information_schema.*: MySQLテナント内のデータベースメタデータ(データベースまたはテーブル名、列のデータ型、アクセス権限など)へのアクセスを提供します。mysql.*: データベースオブジェクトのメタデータを格納するデータディクショナリテーブルと、その他の操作目的で使用されるシステムテーブルを含みます。例えば、mysql.help_*ビューにはサーバー側のヘルプ情報が含まれています。mysql.time_zone_*はタイムゾーン関連情報を記録し、mysql.userビューとmysql.dbビューはユーザー権限関連情報を記録しています。
Oracle互換ビュー
Oracle互換ビューには、データディクショナリビューと動的性能ビューの2種類があります。
データディクショナリビューの形式は
SYS.DBA_*、SYS.USER_*、SYS.ALL_*です:SYS.DBA_*: データベース全体のすべての関連情報を表示します。DBA_ビューには管理者権限でのアクセスが必要です。SYS.ALL_*: ユーザーによるデータベース全体の概要を把握するために使用されます。ユーザーが所有するSchemaオブジェクトに加えて、これらのビューは公開または明示的にユーザーに付与されたSchemaオブジェクトも返します。SYS.USER_*: ユーザー関連の行のみを表示し、ALL_ビューの情報のサブセットを返します。他のビューと同じ列を持ちますが、OWNER列は暗黙的です。
動的性能ビューの形式は
SYS.V$*およびSYS.GV$*です:SYS.V$*: クライアントが接続したノードの稼働状態とパフォーマンス指標情報を表示するために使用されます。この種のビューは、クライアントが接続したノードの状態情報の提供にのみ使用できます。他のノードの状態情報にアクセスする必要がある場合は、SYS.GV$*ビューを使用してください。SYS.GV$*: クラスタ全体の稼働状態とパフォーマンス指標情報を表示するために使用されます。この種のビューはクラスタ全体でアクセス可能で、グローバルな状態情報を提供します。 アクセス権限によって、以下のように区別されます:- SYSテナントからアクセスする場合、すべてのテナントの情報が表示されます。
- 通常のテナントからアクセスする場合、現在のテナントの情報が表示されます。
MySQLテナントからOracleビューへの移植
MySQLテナントからOracleビューへの移植には、データディクショナリビューと動的性能ビューの2種類があります。
データディクショナリビューの形式は
oceanbase.DBA_*です:データベースのメタデータとパフォーマンス指標情報を表示するためのビューで、Oracleデータベースの
DBA_*ビューに似ています。これらのビューは通常、データベース管理者レベルのアクセス権限を提供し、データベース内のすべてのオブジェクトとシステム状態の情報を確認できます。動的性能ビューの形式は
oceanbase.V$*およびoceanbase.GV$*です:oceanbase.V$*: 現在のノードのパフォーマンスと状態情報にアクセスするためのビューで、現在のノードでのみアクセスできます。oceanbase.GV$*: クラスタ全体のパフォーマンスと状態情報にアクセスするためのビューで、クラスタ全体でアクセスできます。
システムテナントからOracleビューへの移植
システムテナントからOracleビューへの移植には、データディクショナリビューのみが含まれ、形式はoceanbase.CDB_*です: この種のビューは、システムテナントと通常のテナントに含まれる一部のデータベースオブジェクトに関する情報を取得するために使用できます。これには、すべてのオブジェクト情報、パーティション情報、テーブル情報などが含まれます。これらのデータベースオブジェクトにはOracleデータベースにも標準のデータディクショナリビューが存在し、テナント間のデータアクセスもサポートされています。例えば、CDB_OBJECTSはすべてのテナントのデータベースオブジェクト情報を表示できます。