CockroachDB单节点集群如何通过启动参数关闭时序数据存储?
20.1.2版本CockroachDB单节点启动关闭时序存储的解决方案
错误原因说明
你遇到的参数报错是因为timeseries.storage.enabled以及两个TTL参数都属于集群级配置项,而非节点启动命令的原生flag,20.1.x版本未将这几个时序相关配置直接暴露为start-single-node的启动参数,因此直接追加在启动命令后会被识别为无效参数。
无需执行SQL查询的启动阶段配置方案
方案1:启动时通过--cluster-setting参数注入配置
CockroachDB的start-single-node命令支持通过--cluster-setting参数在启动过程中预加载集群级配置,不需要后续进入集群执行SQL修改,对应启动命令如下:
docker run -p 26257:26257 -p 8080:8080 cockroachdb/cockroach:v20.1.2 start-single-node --insecure --cluster-setting timeseries.storage.enabled=false
如果要通过TTL参数实现同等效果,可追加多个--cluster-setting参数:
docker run -p 26257:26257 -p 8080:8080 cockroachdb/cockroach:v20.1.2 start-single-node --insecure \ --cluster-setting timeseries.storage.resolution_10s.ttl=0s \ --cluster-setting timeseries.storage.resolution_30m.ttl=0s
方案2:预修改已有集群的配置(适合已存在数据存量的单节点集群)
如果你的单节点集群已经有存量数据,不想直接重新初始化,可以先停止运行的容器,通过set-cluster-setting命令离线修改集群配置后再启动节点,操作步骤如下:
- 停止正在运行的CockroachDB容器
- 执行离线配置修改命令(注意替换挂载的卷路径为你实际使用的存储卷路径):
docker run -v 你的本地存储卷路径:/cockroach/cockroach-data cockroachdb/cockroach:v20.1.2 set-cluster-setting timeseries.storage.enabled=false --insecure
- 正常启动CockroachDB容器即可,无需额外配置
内容的提问来源于stack exchange,提问作者E Paiz
相关产品推荐
相关产品推荐

