更新时间:2025-06-10 GMT+08:00
配置ClickHouse表为只读表模式
操作场景
在数据迁移、一键均衡和退服缩容等操作中,确保表处于只读状态是非常重要的,以防止意外的写操作。ClickHouse提供了only_allow_select_statement 表级参数,可以对MergeTree系列表引擎配置该参数,以限制ALTER、RENAME、DROP和INSERT操作,仅允许SELECT操作。
约束与限制
本章节仅适用于MRS 3.2.0-LTS及之后版本。
设置表只读模式
- 安装客户端,具体请参考安装MRS客户端章节。
- 使用root用户登录安装客户端的节点,执行以下命令:
进入客户端安装目录:
cd 客户端安装目录
配置环境变量:
source bigdata_env
- 如果当前集群为安全模式(开启Kerberos认证),执行以下命令认证当前用户,如果当前集群为普通模式(关闭Kerberos认证),则无需执行本步骤。
kinit 组件业务用户
该用户需要具有ClickHouse管理员权限。
- 执行ClickHouse组件的客户端命令连接服务端。
- 普通模式:
clickhouse client --host ClickHouse的实例IP --user 用户名 --password --port 9440 --secure
输入用户密码
- 安全模式:
clickhouse client --host ClickHouse的实例IP --port 9440 --secure
- MRS 3.2.0-LTS及之前版本:普通模式的用户为默认的default用户,或者使用ClickHouse社区开源能力添加管理用户。不能使用在FusionInsight Manager页面创建的用户。
- MRS 3.3.0-LTS及之后版本:普通模式可以使用在FusionInsight Manager页面创建的用户。
- ClickHouse的实例IP地址可登录集群FusionInsight Manager,然后选择“集群 > 服务 > ClickHouse > 实例”,获取ClickHouseServer实例对应的业务IP地址。
- 普通模式:
- 执行如下语句,设置表为只读模式:
ALTER TABLE {table_name} MODIFY SETTING only_allow_select_statement = true;
父主题: ClickHouse运维管理