文档首页/ MapReduce服务 MRS/ 组件操作指南(安卡拉区域)/ 使用ClickHouse/ ClickHouse常见问题/ ClickHouse集群整体突发下电,上电后replication_queue中存在异常导致副本间数据不同步
更新时间:2024-11-29 GMT+08:00

ClickHouse集群整体突发下电,上电后replication_queue中存在异常导致副本间数据不同步

问题描述

ClickHouseServer副本同步失败,报错信息如下:

查询系统表system.replication_queue,出现下面报错:
 Code: 234. DB::Exception: No active replica has part 1694228400_0_3742_2242 or covering part (cannot execute queue-0000010315: GET_PART with virtual parts [1694228400_0_3742_2242]). (NO_REPLICA_HAS_PART)

处理步骤

  1. 参考从零开始使用ClickHouse登录ClickHouse客户端节点连接ClickHouseServer服务端。
  2. 执行命令SELECT * from system.replication_queue,查询system.replication_queue系统表中的相关信息,发现last_exception列有报错信息打印:

    Code: 234. DB::Exception: No active replica has part 1694228400_0_3742_2242 or covering part (cannot execute queue-0000010315: GET_PART with virtual parts [1694228400_0_3742_2242]). (NO_REPLICA_HAS_PART)

  3. 执行如下命令,获取Zookeeper存储路径,查找所有异常节点:

    SELECT replica_path || '/queue/' || node_name, last_exception FROM system.replication_queue JOIN system.replicas USING (database, table) WHERE create_time < now();

  4. 参考从零开始使用Zookeeper,登录Zookeeper客户端。
  5. 执行delete命令删除3查询到的所有异常节点,例如:

    delete /clickhouse/tables/68/test0722/test156/replicas/1/queue/queue-0000010315

    其中:

    • “/clickhouse/tables/68/test0722/test156/replicas/1/queue”为3获取的异常节点路径。
    • queue-0000010315为3获取的异常节点。

  6. 重新登录ClickHouse客户端节点连接ClickHouseServer服务端,执行如下命令,重启副本同步任务:

    SYSTEM RESTART REPLICAS