首批通过分布式安全可靠测评,为关键业务系统打造
租户下删除库、表后空间没有释放
更新时间:2026-03-10 11:26
租户执行删除库、表命令完成后,但是资源没有立即释放,可能原因是开启了回收站功能。回收站从原理上来说就是一个数据字典表,用于放置用户删除的数据库对象信息,包括数据库和表等信息。用户删除的信息被放入回收站后,其实仍然占据着物理空间,除非您手动清除(PURGE)或者对象定期被数据库系统删除。
问题原因
租户开启了回收站功能,被删除的库和表进入了回收站,未彻底删除。
场景一:新创建的集群,创建业务租户时,回收站默认开启(没有通过命令选项关闭过租户回收站变量)。
查看回收站是否开启
show variables like '%recycle%';开启回收站
set global recyclebin='ON'--关闭回收站
set global recyclebin='OFF'
场景二:为防止用户在控制台上对数据误操作,公有云控制台从页面操作删除库,默认会在删除会话中临时打开回收站,删库,再关回收站,不会直接释放空间(需要手工清理回收站释放)。
解决方法
查看回收站中是否存在大量已经删除,未释放对象占用空间。
查看回收站对象
SHOW RECYCLEBIN;清空整个回收站
PURGE RECYCLEBIN;设置回收站对象自动清理。
通过参数
recyclebin_object_expire_time,设置回收站对象自动清理的时间。关闭自动清理回收站功能
alter system set recyclebin_object_expire_time = "0s";开启自动清理回收站功能,并回收 7 天前进回收站的 schema 对象。
alter system set recyclebin_object_expire_time = "7d"; //
其他相关命令
PURGE 命令:
从回收站清理指定库
PURGE DATABASE object_name;从回收站清理指定表
PURGE TABLE object_name;从回收站中清理指定索引表
PURGE INDEX object_name;