更新时间:2025-12-10 GMT+08:00
分享

配置ClickHouse回收站功能

场景介绍

ClickHouse提供了回收站功能,当用户由于误操作等原因删除表后,在保留时间(默认2天)内可以从回收站中恢复被删除的表及其数据。

使用约束

  • 本章节仅适用于MRS 3.6.0-LTS及之后版本。
  • 仅支持删除表且没有带sync或者no delay关键字的场景下在回收站中保留表的元数据及数据。
  • 由于回收站需要占用额外的存储空间,需要根据磁盘容量设置合适的保留时间。

参数配置

修改回收站保留时间:

  1. 登录FusionInsight Manager界面,通过“集群 > 服务 > ClickHouse > 配置 > 全部配置”进入配置界面。通过搜索框,搜索参数“database_atomic_delay_before_drop_table_sec”,修改参数值。
  2. 单击“保存”,在弹窗页面中单击“确定”,保存配置。单击“实例”,勾选ClickHouseServer实例,选择“更多 > 滚动重启实例”,重启ClickHouseServer实例。

基本语法

  • 方法1:恢复已删除的表及其数据。
    UNDROP table [database_name.]table_name;
  • 方法2:如果有多张已删除的同名表,可以使用UUID恢复指定的表及其数据。
    UNDROP table [database_name.]table_name UUID 'uuid';

使用说明

  1. 使用ClickHouse客户端连接到ClickHouse服务端,具体请参考ClickHouse客户端使用实践
  2. 使用select * from system.dropped_tables;命令查询回收站中已删除的表信息:
    select * from system.dropped_tables;
    ┌─index─┬─database─┬─table──┬─uuid───────┬─engine──────────┬─metadata_dropped_path─────┬──table_dropped_time─┐
    │  0 │ test │ test_1 │ 85f8109a-e469-4059-8763-2cc0d0875dfd │ ReplicatedMergeTree │/srv/metadata/metadata_dropped/test.test_1.85f8109a-e469-4059-8763-2cc0d0875dfd.sql │ 2025-03-09 10:08:11 │
    │  1 │ test │ test_1 │ 452559e6-d12a-405b-b6bf-42b6257e3ab4 │ ReplicatedMergeTree │/srv/metadata/metadata_dropped/test.test_1.452559e6-d12a-405b-b6bf-42b6257e3ab4.sql │ 2025-03-09 10:08:28 │
       └───┴─────┴──┴──────────────┴─────────────┴─────────────────┴────────────┘
  3. 恢复已删除的表及其数据:
    UNDROP table test.test_1;
    use test;
    show tables;
    ┌─name─┐
    │ test_1 │
    └────┘
  4. 使用UUID恢复指定的表及其数据:
    UNDROP table test.test_1 UUID '85f8109a-e469-4059-8763-2cc0d0875dfd';
    use test;
    show tables;
    ┌─name─┐
    │ test_1 │
    └────┘

相关文档