TDSQL Boundless 库表回收站

TDSQL Boundless 回收站功能提供数据安全保障机制,当用户误删除表时,可以通过回收站快速恢复数据。系统通过一张数据字典表,存储被删除的数据库对象信息(包括数据库和表等信息),支持数据恢复操作。

相关产品
TDSQL Boundless 产品页,含版本规格、价格与购买入口。

一、支持版本

适用于 TDSQL Boundless V19.2.0 及以上版本。

二、工作原理

·当启用回收站功能后,执行 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 的表恢复到原来的数据库中。

三、使用限制

·不支持指定库恢复到任意时刻。

·不支持库级别的回收和恢复。

·不支持库的触发器、function、存储过程的回收与恢复。

·不支持普通用户恢复表。

·不支持单独回收索引或者恢复索引。

·不支持分区表的某个子分区(含一级和二级)的回收与恢复。

·不支持临时表。

·不支持指定 DROP 表前的表名来执行 Flashback Query。

·不支持与 Log Service 同时开启。回收站功能会将 DROP TABLE 操作转换为 RENAME TABLE,与依赖 binlog 进行数据同步的功能存在互斥关系。因此,以下场景不支持开启回收站:

·已开启 binlog 的实例。

·已配置灾备实例的主实例。

注意:说明:

注意:如需使用回收站功能,请先确认实例未开启 Log Service(binlog),且未关联灾备实例。若强制开启,可能导致灾备同步异常或数据不一致。

四、使用说明

当打开回收站功能后,用户删除的表默认被放入回收站中(也意味着数据空间并未释放),除非用户手动清除(PURGE)或者对象定期被数据库系统删除。

五、开启回收站功能

开启回收站:

tdsql> SET PERSIST tdsql_recycle_bin_enabled=1;

关闭回收站:

tdsql> SET PERSIST tdsql_recycle_bin_enabled=0;

注意:说明:

六、查看回收站表信息

tdsql>SHOW RECYCLEBIN;

返回结果示例:

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 $recycle_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天,超过时间的表将被自动清理。
赞 (0)
上一篇 4天前
下一篇 4天前