OceanBaseデータベースのMySQLモードでは、データディクショナリが存在し、データディクショナリテーブルは保護されています。データ・ディクショナリ・ビューはデータディクショナリテーブルへのアクセスを提供するものであり、MySQLモードではINFORMATION_SCHEMAテーブルとSHOWステートメントを使用して、データディクショナリテーブルに格納されたデータにアクセスできます。
データ・ディクショナリ・ビューの構成
OceanBaseデータベースのMySQLモードにおけるデータ・ディクショナリ・ビューには、INFORMATION_SCHEMA.*関連ビュー、OCEANBASE.CDB/DBAプレフィックス付きビュー、およびMYSQL.*ビューが含まれます。
INFORMATION_SCHEMA.*プレフィックス付きビュー
INFORMATION_SCHEMAは、MySQLテナント内のデータベースメタデータ(例えばデータベースまたはテーブルの名前、列のデータ型、またはアクセス権限など)へのアクセスを提供します。これはデータディクショナリまたはシステムディレクトリと呼ばれることもあります。INFORMATION_SCHEMAは各MySQLテナント内のDatabase/Schemaであり、MySQLテナントが維持する他のすべてのデータベースに関する情報を格納するために使用されます。INFORMATION_SCHEMAデータベースにはいくつかの読み取り専用テーブルが含まれています。これらは実際には基準テーブルではなく、ビューです。
MYSQL.*プレフィックス付きビュー
MYSQL.*プレフィックス付きのビューはすべてシステムビューであり、OceanBaseデータベースのMySQLモードでサーバーが実行時に必要とする情報を格納するテーブルを含みます。一般的に、mysqlプレフィックス付きのビューには、データベースオブジェクトのメタデータを格納するデータディクショナリテーブルと、その他の操作目的で使用されるシステムテーブルが含まれます。OceanBaseデータベースは一部のmysqlプレフィックス付きビューと互換性があります。例えば、help_*ビューにはサーバー側のヘルプ情報が含まれ、time_zone*にはタイムゾーン関連の情報が記録され、USERビューとDBビューにはユーザー権限に関する情報が記録されています。
OCEANBASE.CDB/DBAプレフィックス付きビュー
OceanBaseデータベースでは、各DBA_*ビューを使用して、現在のテナントの一部のデータベースオブジェクトに関する情報を取得できます。システムテナントoceanbaseデータベースのCDBプレフィックス付きビューを使用すると、現在のクラスタ内のすべてのテナントの一部のデータベースオブジェクトに関する情報を取得できます。
データ・ディクショナリ・ビューのストレージ
テナント内の異なる種類のデータベースオブジェクトのメタ情報は、テナントに対応するデータディクショナリテーブルに永続的に保存されます。原則として、テナントはデータ・ディクショナリ・ビューを通じてのみ、自身のデータディクショナリテーブルにアクセスできます。特に、システムテナントはデータ・ディクショナリ・ビューを通じて、クラスタ内のすべてのテナントのデータディクショナリテーブルにアクセスできます。