
# 配置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客户端使用实践](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2345.html)。
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 │
   └────┘
   ```
   
 
