OB運維 | tenant--刪除租戶的命令

運維實踐派發表於2023-03-16

作者:姚嵩

不知道是地球人還是外星人,知道的可以留言告訴小編...

本文來源:原創投稿

*愛可生開源社群出品,原創內容未經授權不得隨意使用,轉載請聯絡小編並註明來源。


簡介:

刪除租戶後,租戶下的資料庫和表也同時被刪除。

但是租戶使⽤的資源配置不會被刪除,資源配置可以繼續給其他租戶使⽤。

注意:

只有sys租戶的root⽤戶才能執⾏drop tenant命令。

語法:

DROP TENANT [IF EXISTS] tenant_name [PURGE|FORCE];

刪除租戶的⽅式:

OB運維 | tenant--刪除租戶的命令

刪除租戶⽅式的區別:

OB運維 | tenant--刪除租戶的命令

檢視和設定延遲迴收時間:

show parameters like 'schema_history_expire_time'; -- 取值範圍[1h, 30d],預設7天;
alter system set schema_history_expire_time='7d' ; -- 設定延遲迴收時間,設定即⽣效;

檢視和設定回收站⾃動清理時間:

 show parameters like 'recyclebin_object_expire_time'; -- 取值範圍[0s, +∞),0s表示關閉⾃動回收功能;
ALTER SYSTEM SET recyclebin_object_expire_time = "7d"; -- 設定⾃動清理時間,設定即⽣效;

回收站中租戶的處理:

刪除租戶,將其置於回收站中:

set recyclebin=1; DROP TENANT t1;
檢視回收站中的租戶:
 show recyclebin ;
select tenant_name,status,in_recyclebin,
from_unixtime(substr(drop_tenant_time,1,10),"%Y-%m-%d %H:%i:%s") drop_tenant_time
from oceanbase.__all_tenant where in_recyclebin=1 ;
恢復回收站中的租戶(回收租戶時,租戶名可⽤租戶原始名稱或者回收站中的物件名):
 FLASHBACK TENANT t1 TO BEFORE DROP ; -- 使⽤租戶原始名稱恢復
FLASHBACK TENANT __recycle_$_1665918035_1676612471384576 TO BEFORE DROP ; -- 使⽤租戶回收站中的名稱恢復
select tenant_name,status,in_recyclebin,
from_unixtime(substr(drop_tenant_time,1,10),"%Y-%m-%d %H:%:%s") drop_tenant_time
from oceanbase.__all_tenant where tenant_name='t1' ;
清除回收站中的租戶:
 -- purge只會刪除回收站中的租戶,並把租戶轉為延遲刪除,所以資源並未釋放
purge tenant t1 ; -- 可以使⽤租戶名清除
purge tenant __recycle_$_1665918035_1676617637326848 ; -- 可以使⽤物件名清除
-- drop會刪除回收站中的租戶,以及__all_tenant中的記錄,真正釋放了資源池
drop tenant __recycle_$_1665918035_1676613654350848 force; -- 只能使⽤物件名

驗證租戶是否已永久刪除(已不存在租戶對應的條⽬):

show recyclebin ;
select tenant_name,status,in_recyclebin,
from_unixtime(substr(drop_tenant_time,1,10),"%Y-%m-%d %H:%i:%s") drop_tenant_time
from oceanbase.__all_tenant ;

延遲刪除的租戶的處理:

延遲刪除租戶(兩種⽅法):

set recyclebin=0; DROP TENANT t2;
DROP TENANT t2 PURGE;
檢視延遲刪除的租戶:
select tenant_name,status,in_recyclebin,
from_unixtime(substr(drop_tenant_time,1,10),"%Y-%m-%d %H:%i:%s") drop_tenant_time
from oceanbase.__all_tenant where status='TENANT_STATUS_DROPPING';
⼿動刪除延遲刪除的租戶:
drop tenant t2 force

⽴即刪除租戶:

⽴即/永久刪除租戶的命令:
drop tenant t3 force ;

租戶的不同狀態說明:

OB運維 | tenant--刪除租戶的命令

status 值為 TENANT_STATUS_NORMAL,表示正常的租戶;

in_recyclebin 值為 1,表示租戶此時正在回收站中;

status 值為 TENANT_STATUS_DROPPING,且tenant_name以 _recycle$ 開頭,表示已使⽤purge語句將租戶從回收站中刪除,租戶已轉為延遲刪除狀態;

status 值為 TENANT_STATUS_DROPPING,且tenant_name不以 _recycle$ 開頭,表示租戶是透過DROP TENANT xx PURGE;語句執⾏的延遲刪除

測試:

-- 環境準備

OB運維 | tenant--刪除租戶的命令
-- 恢復回收站中的租戶
OB運維 | tenant--刪除租戶的命令
-- 刪除回收站中的租戶
OB運維 | tenant--刪除租戶的命令
-- 延遲刪除租戶
OB運維 | tenant--刪除租戶的命令
-- ⽴即刪除租戶
OB運維 | tenant--刪除租戶的命令
本文關鍵字#租戶# #刪除租戶#

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024924/viewspace-2940038/,如需轉載,請註明出處,否則將追究法律責任。

相關文章