OceanBaseデータベースは DROP TENANT ステートメントを使用してテナントを削除することをサポートしています。
テナントを削除すると、そのテナント配下のデータベースやテーブルも同時に削除されます。ただし、テナントが使用していたリソースプールは削除されません。リソースプールは他のテナントで引き続き使用できます。
システムテナントでゴミ箱機能が有効な場合、
DROP TENANT操作により削除されるテナントはゴミ箱に移動します。ゴミ箱内のテナントについては、後からシステムテナント側でテナントレベルのゴミ箱機能を通じて、そのテナントを削除または復元することが可能です。ゴミ箱に関する操作の詳細については、ゴミ箱の概要を参照してください。システムテナントでゴミ箱機能が無効な場合、
DROP TENANT操作によりテナントは直接削除され、テナント配下のデータベースやテーブルも同時に削除されます。
手順
rootユーザーでクラスタのsysテナントにログインします。obclient -h172.30.xx.xx -P2883 -uroot@sys#cluster -p**** -Aoceanbaseデータベースに入ります。obclient(root@sys)[(none)]> USE oceanbase;DBA_OB_TENANTSビューを使用して、テナント情報を確認します。テナントID、作成日時、リソース割り当てなどの基本情報に基づき、削除対象のテナントを特定します。テナント
mq_t1の情報を取得する例を以下に示します:obclient(root@sys)[oceanbase]> SELECT TENANT_ID, TENANT_NAME, TENANT_TYPE, CREATE_TIME, PRIMARY_ZONE, LOCALITY, COMPATIBILITY_MODE, STATUS FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = 'mq_t1';クエリ結果は次のとおりです:
+-----------+-------------+-------------+----------------------------+--------------+---------------+--------------------+--------+ | TENANT_ID | TENANT_NAME | TENANT_TYPE | CREATE_TIME | PRIMARY_ZONE | LOCALITY | COMPATIBILITY_MODE | STATUS | +-----------+-------------+-------------+----------------------------+--------------+---------------+--------------------+--------+ | 1036 | mq_t1 | USER | 2023-01-11 00:23:36.317242 | zone1;zone2 | FULL{1}@zone1 | MYSQL | NORMAL | +-----------+-------------+-------------+----------------------------+--------------+---------------+--------------------+--------+ 1 row in setDBA_OB_TENANTSビューの詳細については、DBA_OB_TENANTSを参照してください。(オプション)悪意のある操作や誤操作によるデータの不可逆的な損失を防ぐため、OceanBaseデータベースはテナントレベルのゴミ箱機能を提供しており、これによりテナントレベルのデータの迅速な復元が可能になります。ゴミ箱機能はデフォルトで無効になっていますが、必要に応じて有効にすることができます。ゴミ箱の詳細については、ゴミ箱を参照してください。
システムテナントで
SHOW RECYCLEBINステートメントを実行すると、現在のシステムテナントのRECYCLEBIN内のゴミ箱オブジェクトを確認できます。例:obclient(root@sys)[oceanbase]> SHOW RECYCLEBIN;実行結果は次のとおりです:
+--------------------------------+----------------+----------+----------------------------+ | OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME | +--------------------------------+----------------+----------+----------------------------+ | __recycle_$_1_1600136460199936 | obdemo_table | TABLE | 2020-09-15 10:21:00.207886 | | __recycle_$_1_1600136479664128 | obdemo_database| DATABASE | 2020-09-15 10:21:19.664534 | | __recycle_$_1_1600135793000960 | omysql | TENANT | 2020-09-15 10:23:25.773877 | +--------------------------------+----------------+----------+----------------------------+ 3 rows in setパラメータ説明:
OBJECT_NAME:このオブジェクトのゴミ箱内での名前を表します。ORIGINAL_NAME:元のオブジェクト名を表します。TYPE:ゴミ箱オブジェクトが属するタイプを表します。現在主にINDEX、TABLE、DATABASE、TENANTの4種類をサポートしています。この例では、omysqlはテナントタイプのゴミ箱オブジェクトです。CREATETIME:このオブジェクトがゴミ箱に入った時間を表します。
DROP TENANTステートメントを使用して、テナントを削除します。obclient(root@sys)[oceanbase]> DROP TENANT mq_t1;DROP TENANTステートメントの詳細については、DROP TENANTを参照してください。DBA_OB_TENANTSビューを確認し、テナントが正常に削除されたことを確認します。obclient(root@sys)[oceanbase]> SELECT * FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = 'mq_t1'; Empty set(オプション)手順4でゴミ箱機能を有効にしている場合は、
SHOW RECYCLEBINステートメントを使用してゴミ箱内の情報を確認できます。obclient(root@sys)[oceanbase]> SHOW RECYCLEBIN;クエリ結果は次のとおりです:
+-------------------------------------+---------------+--------+----------------------------+ | OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME | +-------------------------------------+---------------+--------+----------------------------+ | __recycle_$_100017_1673367572701376 | mq_t1 | TENANT | 2023-01-11 00:23:36.317242 | +-------------------------------------+---------------+--------+----------------------------+ 1 row in setゴミ箱関連パラメータの詳細については、recyclebinを参照してください。
関連ドキュメント
削除後にテナントを復元する必要がある場合、関連情報は以下を参照してください: