微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Clickhouse表格处于只读模式

如何解决Clickhouse表格处于只读模式

我是Clickhouse的新手 因此,在我的系统上,我反复看到此问题:

“ {} \ u003cError \ u003e void DB :: AsynchronousMetrics :: update():无法 获取表的副本延迟:人员:代码:242,e.displayText()= DB :: Exception:表处于只读模式,堆栈跟踪:“

我可以看到我的动物园管理员状态不佳,所以从Clickhouse文档中看来,这与其中之一有关

  1. zookeeper中的元数据以某种方式被删除
  2. 当Clickhouse尝试出现时,Zookeeper并未启动。

无论哪种方式,我都希望从错误和文档中恢复以下步骤:

a)要开始恢复,请在ZooKeeper中创建节点/ path_to_table / replica_name / flags / force_restore_data 包含任何内容,或运行命令以还原所有复制的表:

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

然后重新启动服务器。在启动时,服务器将删除这些标志并开始恢复。

但是我无法理解应该在哪里运行此命令,我在{house {1}}下的clickhouse容器中查看了没有flags目录的地方。我应该先创建它吗?

还有一种无需重启服务器即可从此错误中恢复的方法,我宁愿避免容器重启?

在只读异常之前附加一些相关日志:

/var/lib/clickhouse

编辑:我确实设法找到了存在标志的文件夹(它存在于我的卷/ repo / data中),但是当我尝试运行命令时

2020.06.19 16:49:02.789216 [ 13 ] {} <Error> DB_0.people (ReplicatedMergeTreeRestartingThread): Couldn't start replication: Replica /clickhouse/tables/shard_0/people/replicas/replica_0732646014 appears to be already active. If you're sure it's not,try again in a minute or remove znode /clickhouse/tables/shard_0/people/replicas/replica_0732646014/is_active manually,DB::Exception: Replica /clickhouse/tables/shard_0/people/replicas/replica_0732646014 appears to be already active. If you're sure it's not,stack trace:

2020.06.19 16:49:13.576855 [ 17 ] {} <Error> DB_0.school (ReplicatedMergeTreeRestartingThread): Couldn't start replication: Replica /clickhouse/tables/shard_0/school/replicas/replica_0732646014 appears to be already active. If you're sure it's not,try again in a minute or remove znode /clickhouse/tables/shard_0/school/replicas/replica_0732646014/is_active manually,DB::Exception: Replica /clickhouse/tables/shard_0/school/replicas/replica_0732646014 appears to be already active. If you're sure it's not,stack trace:

2020.06.19 16:49:23.497824 [ 19 ] {} <Error> DB_0.people (ReplicatedMergeTreeRestartingThread): Couldn't start replication: Replica /clickhouse/tables/shard_0/people/replicas/replica_0732646014 appears to be already active. If you're sure it's not,stack trace:

2020.06.19 16:49:23.665089 [ 20 ] {} <Error> DB_0.school (ReplicatedMergeTreeRestartingThread): Couldn't start replication: Replica /clickhouse/tables/shard_0/school/replicas/replica_0732646014 appears to be already active. If you're sure it's not,stack trace:

2020.06.19 16:49:59.703591 [ 41 ] {} <Error> void Coordination::ZooKeeper::receiveThread(): Code: 999,e.displayText() = Coordination::Exception: Operation timeout (no response) for path: /clickhouse/tables/shard_0/school/blocks (Operation timeout),Stack trace:

2020.06.19 16:49:59.847751 [ 18 ] {} <Error> DB_0.people: void DB::StorageReplicatedMergeTree::queueUpdatingTask(): Code: 999,e.displayText() = Coordination::Exception: Connection loss,path: /clickhouse/tables/shard_0/people/mutations,Stack trace:

2020.06.19 16:50:00.205911 [ 19 ] {} <Warning> DB_0.school (ReplicatedMergeTreeRestartingThread): ZooKeeper session has expired. Switching to a new session.
2020.06.19 16:50:00.315063 [ 19 ] {} <Error> zkutil::EphemeralNodeHolder::~EphemeralNodeHolder(): Code: 999,e.displayText() = Coordination::Exception: Session expired (Session expired),Stack trace:

2020.06.19 16:50:00.338176 [ 15 ] {} <Error> DB_0.people: void DB::StorageReplicatedMergeTree::mergeSelectingTask(): Code: 999,Stack trace:

2020.06.19 16:50:00.387589 [ 16 ] {} <Error> DB_0.school: void DB::StorageReplicatedMergeTree::mergeSelectingTask(): Code: 999,path: /clickhouse/tables/shard_0/school/log,Stack trace:

2020.06.19 16:50:00.512689 [ 17 ] {} <Error> zkutil::EphemeralNodeHolder::~EphemeralNodeHolder(): Code: 999,Stack trace:

2020.06.19 16:50:20.753596 [ 47 ] {} <Error> void DB::DDLWorker::runMainThread(): Code: 999,e.displayText() = Coordination::Exception: All connection tries Failed while connecting to ZooKeeper. Addresses: 172.16.0.28:2181
Poco::Exception. Code: 1000,e.code() = 0,e.displayText() = Timeout: connect timed out: 172.16.0.28:2181 (version 19.13.1.11 (official build)),172.16.0.28:2181
Code: 209,e.displayText() = DB::NetException: Timeout exceeded while reading from socket (172.16.0.28:2181): while receiving handshake from ZooKeeper (version 19.13.1.11 (official build)),172.16.0.28:2181
 (Connection loss),Stack trace:

2020.06.19 16:50:31.499775 [ 51 ] {} <Error> void DB::AsynchronousMetrics::update(): Cannot get replica delay for table: DB_0.people: Code: 242,e.displayText() = DB::Exception: Table is in readonly mode,Stack trace:

我知道了:

sudo -u clickhouse touch /repo/data/flags/force_restore_data

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。