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