You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将指定ClickHouse表副本设为只读模式以模拟集群恢复场景

如何将ClickHouse指定表副本设置为只读模式

方法1:通过ZooKeeper手动标记只读

ClickHouse副本的状态依赖ZooKeeper维护,直接修改ZK节点即可快速设置:

  • 先定位目标表在ZK中的路径,格式通常为 /clickhouse/tables/{分片ID}/{库名}.{表名}/replicas/{副本名}/flags/readonly
  • 使用zkCli连接到ZooKeeper服务器,执行设置命令:
    zkCli.sh -server ZK_HOST:ZK_PORT
    set /clickhouse/tables/1/default.test_table/replicas/ch-replica-1/flags/readonly 1
    
    把路径中的占位符替换成你实际的分片ID、库表名和副本名称即可。若要取消只读,将值改为0即可。

方法2:用ClickHouse SQL语句设置(需对应权限)

如果拥有ALTER权限,直接执行SQL就能完成设置:

ALTER TABLE default.test_table ON CLUSTER my_cluster MODIFY SETTING readonly = 1 FOR REPLICA 'ch-replica-1'

替换成你的实际库表名、集群名和副本名,执行后目标副本会立即进入只读模式。

验证设置结果

执行你提供的查询语句:

SELECT
    database,
    `table`
FROM system.replicas
WHERE is_readonly = 1

此时就能返回被标记为只读的表副本信息。

内容的提问来源于stack exchange,提问作者Pierre Louis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:27:36