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を参照してください。
関連ドキュメント
削除後にテナントを復元する必要がある場合、関連情報は以下を参照してください: