
# 收集ClickHouse系统表转储日志
#### 操作场景
在日常使用ClickHouse时，如果出现一些异常故障，需要紧急重启恢复业务，在紧急重启之前，需要及时转储ClickHouse各系统表状态信息，用于问题定位，提升ClickHouse问题定位的效率。
当ClickHouse出现查询超时、节点异常、数据同步失败等故障且需要紧急重启恢复时，重启操作会清除内存中的运行状态数据。因此在重启前必须先转储系统表信息，以便在重启后通过分析转储日志定位故障根因，避免因重启丢失关键诊断数据。
针对不同的系统表日志可以分为实时转储和一键转储，如下表所示：
| 系统表转储日志   | 系统表                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|
| 实时转储系统表日志 | - system.asynchronous_metrics  - system.clusters  - system.distribution_queue  - system.events  - system.grants  - system.mutations  - system.processes  - system.metrics  - system.part_moves_between_shards  - system.replicas  - system.replicated_fetches  - system.replication_queue   |
| 一键转储系统表日志 | - system.distributed_ddl_queue  - system.errors  - system.parts  - system.parts_columns  - system.query_log  - system.query_thread_log  - system.trace_log                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
#### 约束与限制
本章节仅适用于MRS 3.3.0-LTS及之后版本。
#### 收集实时转储系统表日志
1. 登录FusionInsight Manager页面，选择"运维 \> 日志 \> 下载"，在"服务"勾选"ClickHouseSystemTableDump"。 
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001725030905.png "点击放大")
   
   
2. 在"主机"中勾选需要获取的主机信息，单击"确定"。 
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001677031444.png "点击放大")
   
   
3. 单击右上角的时间编辑按钮，设置日志收集的"开始时间"和"结束时间"。 
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   收集异常故障日志时间长短可以咨询技术支持人员。
   
   
4. 单击"下载"，实时转储的系统表会被保存在本地。
5. **验证方法**：下载完成后，解压日志包，检查是否包含system.asynchronous_metrics、system.clusters等系统表的转储日志文件。如果日志文件存在且包含故障时间段内的数据，说明实时转储日志收集成功。
 
#### 收集一键转储系统表日志
1. 使用**root** 用户后台登录任一ClickHouseServer节点，进入到sbin目录下。
   
   ```
   cd ${BIGDATA_HOME}/FusionInsight_ClickHouse_*/*_*_ClickHouseServer/install/clickhouse/sbin
   ```
   
   
2. 执行如下命令获取转储日志： 
   ```
   ./clickhouse_systemtable_dump.sh 1 "收集开始时间" "收集结束时间"
   ```
   例如：
   ```
   ./clickhouse_systemtable_dump.sh 1 "2023-08-04 12:00:00" "2023-08-04 16:37:20"
   ```
   
   
3. 进入"/var/log/Bigdata/clickhouse/systemTableDump/oneclickTable"目录，查看一键转储压缩日志。 
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001676871712.png "点击放大")
   
   
4. **验证方法**：进入输出目录后，检查是否生成了以时间戳命名的.tar.gz压缩文件。使用tar -zxvf \<文件名\>解压后，确认包含system.errors、system.parts等系统表的转储数据文件。如果文件存在且数据内容覆盖了指定的时间范围，说明一键转储成功。
 
#### 相关文档
- 了解如何安装和使用ClickHouse客户端连接ClickHouse服务，具体请参考[ClickHouse客户端使用实践](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2345.html)。
- 了解更多ClickHouse用户权限管理（如修改、删除租户等），具体请参考[ClickHouse用户权限管理](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24251.html)。
- 了解如何对ClickHouse表进行操作，例如创建表、删除表、修改/查询表数据，具体请参考[ClickHouse常用SQL语法](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24199.html)。
 
#### 常见问题
**Q：一键转储时提示"No data found in the specified time range"如何处理？**
A：请检查开始时间和结束时间是否在系统表日志的保留周期内。系统表日志默认保留时间有限，若时间范围过早，可能已被清理。建议适当缩小时间范围或联系技术支持确认日志保留策略。
**Q：转储日志文件过大如何处理？**
A：转储日志大小与系统表数据量和时间范围成正比。建议缩小时间范围后重新收集，或将大文件分批次下载。如需分析超大日志文件，可使用grep、awk等工具过滤关键信息。
