日常的な運用保守プロセスにおいて、tenant_id と table_id は最も一般的に使用される情報です。
tenant_idのクエリ
テナント名が既知で、そのテナントの tenant_id を照会する必要がある場合は、ビュー DBA_OB_TENANTS を使用して照会できます。システムテナントとユーザーテナントの両方でこのビューを照会できます。ただし、システムテナントではすべてのテナント(Metaテナントを含む)の情報が表示され、ユーザーテナントでは自身のテナントの情報のみが表示されます。
システムテナント
システムテナントでは、以下のステートメントを使用してクエリを実行できます。
obclient> SELECT TENANT_ID, TENANT_NAME, TENANT_TYPE FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME='tanant_name';ユーザーテナント
MySQLモードのユーザーテナントでは、以下のステートメントを使用してクエリを実行できます。
obclient> SELECT TENANT_ID, TENANT_NAME, TENANT_TYPE FROM oceanbase.DBA_OB_TENANTS;Oracleモードのユーザーテナントでは、以下のステートメントを使用してクエリを実行できます。
obclient> SELECT TENANT_ID, TENANT_NAME, TENANT_TYPE FROM SYS.DBA_OB_TENANTS;
さらに、システムテナントとMySQLモードのユーザーテナントは、関数 effective_tenant_id() を使用して現在のテナントの tenant_id を迅速に取得することもできます。
ステートメントは以下のとおりです:
obclient> SELECT effective_tenant_id();
table_idのクエリ
テーブル名が既知の場合、ビュー CDB_OB_TABLE_LOCATIONS (システムテナント) または DBA_OB_TABLE_LOCATIONS (ユーザーテナント) を使用してテーブルの table_id を照会できます。
システムテナント
システムテナントでは、以下のステートメントを使用してクエリを実行できます。
obclient> SELECT DISTINCT TABLE_ID, DATABASE_NAME, TABLE_NAME, TABLE_TYPE FROM oceanbase.CDB_OB_TABLE_LOCATIONS WHERE TENANT_ID=tenant_id AND TABLE_NAME='table_name';ユーザーテナント
MySQLモードのユーザーテナントでは、以下のステートメントを使用してクエリを実行できます。
obclient> SELECT DISTINCT TABLE_ID, DATABASE_NAME, TABLE_NAME, TABLE_TYPE FROM oceanbase.DBA_OB_TABLE_LOCATIONS WHERE TABLE_NAME='table_name';Oracleモードのユーザーテナントでは、以下のステートメントを使用してクエリを実行できます。
obclient> SELECT DISTINCT TABLE_ID, DATABASE_NAME, TABLE_NAME, TABLE_TYPE FROM SYS.DBA_OB_TABLE_LOCATIONS WHERE TABLE_NAME='table_name';