产品概述
应用场景
产品架构
实例类型
兼容性说明
DROP TABLE 操作时,系统会自动转换为RENAME TABLE db.t TO __tdsql__recycle_bin__.<RECYCLED_TABLE>,将被 DROP 的表移到__tdsql__recycle_bin__中。RENAME TABLE __tdsql__recycle_bin__.<RECYCLED_TABLE> TO db.t,将被 DROP 的表恢复到原来的数据库中。DROP TABLE 操作转换为 RENAME TABLE,与依赖 binlog 进行数据同步的功能存在互斥关系。因此,以下场景不支持开启回收站:tdsql> SET PERSIST tdsql_recycle_bin_enabled=1;
tdsql> SET PERSIST tdsql_recycle_bin_enabled=0;
tdsql_recycle_bin_enabled为全局变量。tdsql>SHOWRECYCLEBIN;
tdsql > SHOW RECYCLEBIN;+-----------+---------------+--------------+--------------------------------+---------------------+---------------------+| tindex_id | origin_schema | origin_table | recycle_table | drop_time | purge_time |+-----------+---------------+--------------+--------------------------------+---------------------+---------------------+| 53135 | sbtest | sbtest1_*** | bin$zxrh/bsnned9vygu4ioafg==$1 | 2026-01-14 16:19:54 | 2026-01-21 16:19:54 |+-----------+---------------+--------------+--------------------------------+---------------------+---------------------+1 row in set (0.01 sec)
参数 | 说明 |
tindex_id | 表对象 ID。 |
origin_schema | 原数据库名。 |
origin_table | 原表名。 |
recycle_table | 回收站中的表名。 命名规则说明: 由于回收站需要集中管理来自不同数据库被删除的表,系统采用特定编码确保表名全局唯一。编码格式为: bin$base64(md5(__ + tdsql_ + {db_name} + {table_name}))${version},其中${version}为递增数值标记,用于区分同一表名的多次删除记录。 |
drop_time | 删除时间。 |
purge_time | 自动清理时间(默认7天后)。 |
FLASHBACK TABLE $recycle_table_name TO BEFORE DROP [RENAME TO $new_table_name];
$recycle_table: 表进入回收站后的别名。$new_table_name:表恢复时的新命名。-- 恢复表并重命名tdsql> FLASHBACK TABLE `bin$zxrh/bsnned9vygu4ioafg==$1` TO BEFORE DROP RENAME TO sbtest11;
DROP TABLE $NAME PURGE;
PURGE RECYCLEBIN $recyele_table_name;
PURGE RECYCLEBIN;
参数名 | 类型 | 默认值 | 说明 |
tdsql_recycle_bin_enabled | bool | 0 | 是否开启回收站。 0(默认值):关闭。 1:开启 |
tdsql_recycle_bin_max_size | ulong | 18446744073709551615 | 回收站最大对象数量限制。 |
tdsql_recycle_bin_drop_if_exceed_limit | ulong | 1 | 超过限制时是否 DROP 表。 0:否。 1(默认值):是。 |
tdsql_recycle_bin_retention | ulong | 604800 | 回收站对象保留时间(秒),默认7天,超过时间的表将被自动清理。 |
文档反馈