1

我们之前在 Zookeeper 中完美同步了三个 Clickhouse 节点,直到其中一个丢失。

Clickhouse 节点完全按照以前的方式重建(使用 Ansible),并且create table运行了相同的命令,导致以下错误。

命令:

CREATE TABLE ontime_replica ( ... )
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/ontime_replica', '{replica}', FlightDate, (Year, FlightDate), 8192)

错误是:

Received exception from server:
Code: 253. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Replica /clickhouse/tables/01/ontime_replica/replicas/clickhouse1 already exists..

我们目前使用的是 Zookeeper 版本 3.4.10,我想知道是否有办法在 Zookeeper 中删除现有副本,或者简单地让 Zookeeper 知道这是现有副本的新版本。

先感谢您!

4

1 回答 1

3

我的解决方法是不正确的。最初,我认为我需要在 Zookeeper 中删除副本。相反,Clickhouse 服务器中的以下命令可以解决此问题。

  • 从另一个工作节点复制 SQL 文件。文件在/var/lib/clickhouse/metadata/default

  • chown clickhouse:clickhouse <database>.sql

  • chmod 0640 <database>.sql

  • sudo -u clickhouse touch /var/lib/clickhouse/flags/force_restore_data

  • service clickhouse-server start

于 2018-01-11T21:17:19.847 回答