ClickHouse数据库异常掉电后Parts大量损坏解决方法

1. 服务可以正常启动

1.1 修改config.xml配置

编辑 ClickHouse 的 config.xml(通常位于 /etc/clickhouse-server/config.xml ):

<merge_tree>
    <max_suspicious_broken_parts>500</max_suspicious_broken_parts>
</merge_tree>

1.2 重启 ClickHouse

systemctl restart clickhouse-server

2. 服务无法启动

2.1 手动启动并跳过检查

sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml --skip-suspicious-parts-check

2.2 修复损坏的 parts

-- 进入 ClickHouse 客户端
clickhouse-client

-- 尝试修复表
SYSTEM RESTART REPLICA `database`.`table1`;

-- 或者强制恢复(慎用,可能导致数据丢失)
SYSTEM RECOVER TABLE `database`.`table1`;

如果是可丢弃数据,可选择删除表后重新建立

2.3 手动清理损坏的 parts

找到表的数据目录(通常在 /var/lib/clickhouse/data/database/table1/)

检查 detached/ 文件夹,里面可能有损坏的 parts:

sudo ls -l /var/lib/clickhouse/data/database/table1/detached/

备份后删除损坏的 parts(谨慎操作!):

sudo rm -rf /var/lib/clickhouse/data/database/table1/detached/*
posted @ 2025-05-06 13:57  XSWClevo  阅读(260)  评论(0)    收藏  举报