テーブルグループを作成すると、その情報を確認できます。これには、テーブルグループのSHARDING属性、テーブルグループ内のテーブル、テーブルグループの作成日時、およびテーブルグループ内のテーブルのLocation情報が含まれます。
テーブルグループのSHARDINGプロパティを確認する
ビューを使用してテーブルグループの属性とテーブルのパーティション情報を確認する
Oracleユーザーテナントは、ビューDBA_OB_TABLEGROUPSを使用して、テーブルグループのSHARDING属性およびテーブルグループ内のテーブルのパーティション情報を確認できます。ステートメントは以下のとおりです。
SELECT * FROM SYS.DBA_OB_TABLEGROUPS WHERE tablegroup_name = 'TBLGROUP1';
クエリ結果は次のとおりです:
+-----------------+-------------------+----------------------+-----------------+------------------------+------------------------+---------------------------+----------+
| TABLEGROUP_NAME | PARTITIONING_TYPE | SUBPARTITIONING_TYPE | PARTITION_COUNT | DEF_SUBPARTITION_COUNT | PARTITIONING_KEY_COUNT | SUBPARTITIONING_KEY_COUNT | SHARDING |
+-----------------+-------------------+----------------------+-----------------+------------------------+------------------------+---------------------------+----------+
| TBLGROUP1 | NONE | NONE | NULL | NULL | NULL | NULL | NONE |
+-----------------+-------------------+----------------------+-----------------+------------------------+------------------------+---------------------------+----------+
1 row in set
クエリ結果の各フィールドの説明は以下のとおりです:
TABLEGROUP_NAME:テーブルグループ名。PARTITIONING_TYPE、SUBPARTITIONING_TYPE、PARTITION_COUNT、DEF_SUBPARTITION_COUNT、PARTITIONING_KEY_COUNT、SUBPARTITIONING_KEY_COUNT:V3.xバージョンでパーティション定義を持つテーブルグループの属性です。現在のバージョンではNONEまたはNULLと表示されます。SHARDING:テーブルグループのSHARDING属性。SHARDING属性がNONEのテーブルグループでは、テーブルグループ内のすべてのテーブルのすべてのパーティションが同一マシンに集約されており、テーブルグループへの参加テーブルに制限はありません。SHARDING属性がPARTITIONのテーブルグループでは、テーブルグループ内の各テーブルのデータはパーティション単位で分散されます。サブパーティションテーブルの場合、パーティション内のすべてのサブパーティションがまとめられます。参加要件:テーブルグループに参加するテーブルの対応するパーティションは、テーブルグループ内のすべてのテーブルのパーティション定義(パーティションタイプ、パーティション数、パーティション値を含む)と一致している必要があります。
SHARDING属性がADAPTIVEのテーブルグループでは、テーブルグループ内の各テーブルのデータは適応型方式で分散されます。つまり、テーブルグループ内のテーブルがパーティションテーブルの場合はパーティション単位で、サブパーティションテーブルの場合は各パーティションのサブパーティション単位で分散されます。参加要件:テーブルグループに参加するテーブルの対応するパーティションとサブパーティションは、テーブルグループ内のすべてのテーブルのパーティションとサブパーティションの定義(パーティションタイプ、パーティション数、パーティション値を含む)と一致している必要があります。
SHOW TABLEGROUPSステートメントを使用してテーブルグループの属性とテーブルが属するデータベースを確認する
Oracleユーザーテナントは、SHOW TABLEGROUPS ステートメントを使用して、テーブルグループ内のテーブルが属するデータベースおよびテーブルグループの SHARDING 属性を確認することもできます。
SHOW TABLEGROUPS WHERE tablegroup_name = 'TBLGROUP1';
クエリ結果は次のとおりです:
+-----------------+------------+---------------+----------+
| TABLEGROUP_NAME | TABLE_NAME | DATABASE_NAME | SHARDING |
+-----------------+------------+---------------+----------+
| TBLGROUP1 | TBL1 | SYS | ADAPTIVE |
| TBLGROUP1 | TBL2 | SYS | ADAPTIVE |
+-----------------+------------+---------------+----------+
2 rows in set
クエリ結果の各フィールドの説明は以下のとおりです:
TABLEGROUP_NAME:テーブルグループ名。TABLE_NAME:テーブルグループ内のテーブル名。DATABASE_NAME:テーブルグループ内のテーブルが属するデータベース。SHARDING:テーブルグループのSHARDING属性。SHARDING属性がNONEのテーブルグループでは、テーブルグループ内のすべてのテーブルのすべてのパーティションが同一マシンに集約され、テーブルグループへのテーブルの追加に制限はありません。SHARDING属性がPARTITIONのテーブルグループでは、テーブルグループ内の各テーブルのデータはパーティション単位で分散されます。サブパーティションテーブルの場合、パーティション内のすべてのサブパーティションがまとめられます。加入要件:テーブルグループに加入するテーブルの対応するパーティションは、テーブルグループ内のすべてのテーブルのパーティション定義(パーティションタイプ、パーティション数、パーティション値を含む)と一致している必要があります。
SHARDING属性がADAPTIVEのテーブルグループでは、テーブルグループ内の各テーブルのデータは適応型方式で分散されます。つまり、テーブルグループ内のテーブルがパーティションテーブルの場合はパーティション単位で、サブパーティションテーブルの場合は各パーティションのサブパーティション単位で分散されます。加入要件:テーブルグループに加入するテーブルの対応するパーティションとサブパーティションは、テーブルグループ内のすべてのテーブルのパーティションとサブパーティションの定義(パーティションタイプ、パーティション数、パーティション値を含む)と一致している必要があります。
テーブルグループ内のテーブルの確認
Oracleユーザーテナントは、ビュー DBA_OB_TABLEGROUP_TABLES を使用して、テーブルグループ内に存在するテーブルとそれらが属するデータベースを確認できます。ステートメントは以下のとおりです。
SELECT * FROM SYS.DBA_OB_TABLEGROUP_TABLES WHERE tablegroup_name = 'TBLGROUP1';
クエリ結果は次のとおりです:
+-----------------+-------+------------+----------+
| TABLEGROUP_NAME | OWNER | TABLE_NAME | SHARDING |
+-----------------+-------+------------+----------+
| TBLGROUP1 | SYS | TBL1 | NONE |
| TBLGROUP1 | SYS | TBL2 | NONE |
+-----------------+-------+------------+----------+
2 rows in set
クエリ結果の各フィールドの説明は以下のとおりです:
TABLEGROUP_NAME:テーブルグループ名。OWNER:テーブルグループ内のテーブルが属するデータベース。TABLE_NAME:テーブルグループ内のテーブル名。SHARDING:テーブルグループのSHARDING属性。SHARDING属性がNONEのテーブルグループでは、テーブルグループ内のすべてのテーブルのすべてのパーティションが同一マシンに集約され、テーブルグループへのテーブルの追加に制限はありません。SHARDING属性がPARTITIONのテーブルグループでは、テーブルグループ内の各テーブルのデータはパーティション単位で分散されます。サブパーティションテーブルの場合、パーティション内のすべてのサブパーティションがまとめられます。加入要件:テーブルグループに加入するテーブルの対応するパーティションは、テーブルグループ内のすべてのテーブルのパーティション定義(パーティションタイプ、パーティション数、パーティション値を含む)と一致している必要があります。
SHARDING属性がADAPTIVEのテーブルグループでは、テーブルグループ内の各テーブルのデータは適応型方式で分散されます。つまり、テーブルグループ内のテーブルがパーティションテーブルの場合はパーティション単位で、サブパーティションテーブルの場合は各パーティションのサブパーティション単位で分散されます。加入要件:テーブルグループに加入するテーブルの対応するパーティションとサブパーティションは、テーブルグループ内のすべてのテーブルのパーティションとサブパーティションの定義(パーティションタイプ、パーティション数、パーティション値を含む)と一致している必要があります。
テーブルグループの作成日時の確認
Oracleユーザーテナントは、ビューDBA_OBJECTSを使用して、テーブルグループの作成日時や直近のDDL操作などの情報を確認できます。
SELECT OBJECT_NAME,CREATED, LAST_DDL_TIME FROM SYS.DBA_OBJECTS WHERE object_name = 'TBLGROUP1';
クエリ例は以下のとおりです:
+-------------+-----------+---------------+
| OBJECT_NAME | CREATED | LAST_DDL_TIME |
+-------------+-----------+---------------+
| TBLGROUP1 | 28-JUN-23 | 28-JUN-23 |
+-------------+-----------+---------------+
1 row in set
クエリ結果の一部のフィールドについて説明します:
OBJECT_NAME:オブジェクト名、すなわち現在クエリ対象のテーブルグループ名です。CREATED:テーブルグループの作成日時です。LAST_DDL_TIME:直近に実行されたDDL操作の時間です。
テーブルグループ内のテーブルのLocation情報を確認する
Oracleユーザーテナントは、ビューDBA_OB_TABLE_LOCATIONSを使用して、テーブルグループ内のテーブルのLocation情報を確認できます。これには、テーブルの各パーティション(PARTITION_NAME)に対応するシャード(TABLET_ID)、シャード(TABLET_ID)とログストリーム(LS_ID)のマッピング関係、およびログストリームレプリカの位置情報などが含まれます。
SELECT * FROM SYS.DBA_OB_TABLE_LOCATIONS WHERE tablegroup_name = 'TBLGROUP1';
クエリ結果は次のとおりです:
+---------------+------------+----------+------------+----------------+-------------------+------------+---------------+-----------+-------+-------+----------------+----------+----------+--------------+-----------------+-----------+-----------------+---------------+----------+
| DATABASE_NAME | TABLE_NAME | TABLE_ID | TABLE_TYPE | PARTITION_NAME | SUBPARTITION_NAME | INDEX_NAME | DATA_TABLE_ID | TABLET_ID | LS_ID | ZONE | SVR_IP | SVR_PORT | ROLE | REPLICA_TYPE | DUPLICATE_SCOPE | OBJECT_ID | TABLEGROUP_NAME | TABLEGROUP_ID | SHARDING |
+---------------+------------+----------+------------+----------------+-------------------+------------+---------------+-----------+-------+-------+----------------+----------+----------+--------------+-----------------+-----------+-----------------+---------------+----------+
| SYS | TBL1 | 500190 | USER TABLE | NULL | NULL | NULL | NULL | 200121 | 1001 | zone1 | XX.XX.XX.197 | 2882 | LEADER | FULL | NONE | 500190 | TBLGROUP1 | 500189 | NONE |
| SYS | TBL1 | 500190 | USER TABLE | NULL | NULL | NULL | NULL | 200121 | 1001 | zone2 | XX.XX.XX.194 | 2882 | FOLLOWER | FULL | NONE | 500190 | TBLGROUP1 | 500189 | NONE |
| SYS | TBL2 | 500191 | USER TABLE | P0 | NULL | NULL | NULL | 200122 | 1001 | zone1 | XX.XX.XX.197 | 2882 | LEADER | FULL | NONE | 500192 | TBLGROUP1 | 500189 | NONE |
| SYS | TBL2 | 500191 | USER TABLE | P0 | NULL | NULL | NULL | 200122 | 1001 | zone2 | XX.XX.XX.194 | 2882 | FOLLOWER | FULL | NONE | 500192 | TBLGROUP1 | 500189 | NONE |
| SYS | TBL2 | 500191 | USER TABLE | P1 | NULL | NULL | NULL | 200123 | 1001 | zone1 | XX.XX.XX.197 | 2882 | LEADER | FULL | NONE | 500193 | TBLGROUP1 | 500189 | NONE |
| SYS | TBL2 | 500191 | USER TABLE | P1 | NULL | NULL | NULL | 200123 | 1001 | zone2 | XX.XX.XX.194 | 2882 | FOLLOWER | FULL | NONE | 500193 | TBLGROUP1 | 500189 | NONE |
+---------------+------------+----------+------------+----------------+-------------------+------------+---------------+-----------+-------+-------+----------------+----------+----------+--------------+-----------------+-----------+-----------------+---------------+----------+
6 rows in set
クエリ結果の各フィールドの説明は以下のとおりです:
DATABASE_NAME:テーブルグループ内のテーブルが属するデータベース名。TABLE_NAME:テーブルグループ内のテーブル名。TABLE_ID:テーブルグループ内のテーブルID。TABLE_TYPE:テーブルグループ内のテーブルタイプ。USER TABLE:ユーザーテーブルSYSTEM TABLE:システムテーブル、システムが作成したテーブルINDEX:インデックステーブルLOB AUX TABLE:LOB補助テーブル、システムが作成したテーブルで、LOB列の実装を補助するために使用される
PARTITION_NAME:パーティション名。非パーティションテーブルの場合はデフォルトでNULL。SUBPARTITION_NAME:サブパーティション名。NULLはサブパーティションが存在しないことを示します。INDEX_NAME:インデックステーブルの場合はインデックステーブル名を表示し、それ以外の場合はNULLを表示します。DATA_TABLE_ID:インデックステーブルまたはLOB補助テーブルの場合は、それらが属する主テーブルのIDを示します。それ以外の場合はNULLを表示します。TABLET_ID:パーティションに対応するシャードID。LS_ID:テーブルグループ内のテーブルが配置されているログストリーム。ZONE:レプリカが配置されているゾーン。SVR_IP:レプリカが配置されているOBServerノードのIPアドレス情報。SVR_PORT:レプリカが配置されているOBServerノードのポート番号。ROLE:ログストリームレプリカのロール。REPLICA_TYPE:ログストリームレプリカタイプ。FULL:フル機能レプリカREADONLY:読み取り専用レプリカCOLUMNSTORE:カラムストアレプリカ
OBJECT_ID:テーブルグループ内のテーブルが非パーティションテーブルの場合はそのIDを示し、パーティションテーブルの場合は各パーティションのIDを示します。TABLEGROUP_NAME:クエリ対象のテーブルグループ名。TABLEGROUP_ID:クエリ対象のテーブルグループID。SHARDING:テーブルグループのSHARDING属性。SHARDING属性がNONEのテーブルグループでは、テーブルグループ内のすべてのテーブルのすべてのパーティションが同一マシンに集約されており、テーブルグループへのテーブルの追加に制限はありません。SHARDING属性がPARTITIONのテーブルグループでは、テーブルグループ内の各テーブルのデータはパーティション単位で分散されます。サブパーティションテーブルの場合は、パーティション内のすべてのサブパーティションがまとめられます。加入要件:テーブルグループに加入するテーブルの対応するパーティションは、テーブルグループ内のすべてのテーブルのパーティション定義(パーティションタイプ、パーティション数、パーティション値を含む)と一致している必要があります。
SHARDING属性がADAPTIVEのテーブルグループでは、テーブルグループ内の各テーブルのデータは適応型方式で分散されます。つまり、テーブルグループ内のテーブルがパーティションテーブルの場合はパーティション単位で、サブパーティションテーブルの場合は各パーティションのサブパーティション単位で分散されます。加入要件:テーブルグループに加入するテーブルの対応するパーティションとサブパーティションは、テーブルグループ内のすべてのテーブルのパーティションとサブパーティションの定義(パーティションタイプ、パーティション数、パーティション値を含む)と一致している必要があります。