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_*: ユーザーによるデータベース全体の概要を提供するために使用されます。ユーザーが所有するスキーマオブジェクトに加えて、これらのビューは公開または明示的にユーザーに付与されたスキーマオブジェクトも返します。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は、すべてのテナントのデータベースオブジェクト情報を表示できます。