ClickHouse元数据异常解决-Can't drop readonly replicated table (need to drop data in zookeeper as well)

Clickhouse版本:20.3.6.40-2

Zookeeper版本:3.4.14

clickhouse集群三个节点,一分片,三副本,三个节点数据完全一样

1. 问题描述

drop一张表时主节点(自定义)首先报错超时,其它两个从节点删除成功。

2. 问题定位

日志显示:

zk显示,发现这张表副本里有其它节点(不在三节点范围内)

 初步判断是zk元数据异常

3. 解决过程

首先尝试删除数据目录,rm -rf  clickhouse/data/data/database名/表名

再执行drop,依旧报错,显示需要zookeeper数据:

于是删除zookeeper目录: rmr /clickhouse/tables/分片名/表名

发现删除后依旧报错,想到数据目录metedata没有删除,于是执行 rm -rf clickhouse/data/metadata/database名/表名.sql

以上三个执行完后还是会报错,于是重启zk,ck,解决!

总结:

由于操作失误,在这三台之外的ck节点执行了相同的建表语句,此节点与这三节点共用了同一套zk,于是zk里会有它的信息,导致删除不掉

最简单的解决办法是在此ck节点执行drop,zk也会清理掉,如果是其他问题就需要执行三个命令,才会彻底删除

  • rm -rf  clickhouse/data/data/database名/表名
  • rm -rf clickhouse/data/metadata/database名/表名.sql
  • rmr /clickhouse/tables/分片名/表名

 --------------------------------END --------------------------------

希望对大家有帮助,有问题多交流

原文地址:https://www.cnblogs.com/changsblogs/p/14542192.html