乐趣区

关于oceanbase:OB运维-tenant删除租户的命令

作者:姚嵩

不晓得是地球人还是外星人,晓得的能够留言通知小编 …

本文起源:原创投稿

* 爱可生开源社区出品,原创内容未经受权不得随便应用,转载请分割小编并注明起源。


简介:

删除租户后,租户下的数据库和表也同时被删除。

然而租户使⽤的资源配置不会被删除,资源配置能够持续给其余租户使⽤。

留神

只有 sys 租户的 root ⽤户能力执⾏ drop tenant 命令。

语法:

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

删除租户的⽅式:

删除租户⽅式的区别:

查看和设置提早回收工夫:

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 ;

租户的不同状态阐明:

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; 语句执⾏的提早删除

测试:

— 环境筹备

— 复原回收站中的租户

— 删除回收站中的租户

— 提早删除租户

— ⽴即删除租户

退出移动版