更新时间:2024-04-18 GMT+08:00

ALM-45435 ClickHouse表元数据不一致

告警解释

检测到分布式表本身,或分布式表对应的本地表的元数据不一致持续180min后,系统产生此告警。

当分布式表本身,或分布式表对应的本地表的元数据一致时,告警自动清除。

元数据一致包括:

  • 表中各列的数量、名称、顺序、类型一致
  • 分区键一致
  • 排序键一致
  • 主键一致
  • 采样键一致

该告警存在,则说明当前节点所属的ClickHouse集群中,表元数据存在不一致,不一致可能是由多种原因导致,不仅限于附加信息。

告警属性

告警ID

告警级别

是否可自动清除

45435

次要

告警参数

参数名称

参数含义

来源

产生告警的集群或系统名称

服务名

产生告警的服务名称

角色名

产生告警的角色名称

表名

产生告警的库名.表名

对系统的影响

ClickHouse业务中若存在元数据不一致的表,则后续针对该表的insert、alter等操作可能执行失败。

可能原因

修改表元数据时在其中一个或多个ClickHouseServer节点执行失败或未执行。

处理步骤

  1. 登录FusionInsight Manager页面,选择“运维 > 告警 > 告警”,查看当前告警“定位信息”中的角色名以及确认主机名所在的IP地址。
  2. 以客户端安装用户,登录客户端的节点,执行如下命令:

    cd {客户端安装路径}

    source bigdata_env

    • 集群已启用Kerberos认证(安全模式):

      kinit 组件业务用户

      clickhouse client --host 上报告警的ClickHouseServer实例IP --port 9440 --secure

    • 集群未启用Kerberos认证(普通模式):

      clickhouse client --host 上报告警的ClickHouseServer实例IP --user 用户名 --password --port 9000

  3. 查询是否有与告警表相关的正在执行的任务:

    查询是否有执行中的sql任务:

    select * from system.processes where current_database='库名' and query like '%表名%'

    查询是否有正在执行的mutation任务:

    select * from system.mutations where database='库名' and table='表名';

    • 如果查询出来的结果均为空,执行4
    • 如果查询出来的结果中有报错信息,请根据报错内容处理,若无法自行处理,执行6
    • 如果查询出来的结果中有执行中且不存在报错的信息,说明sql/mutation任务正在执行。

      执行完成之后等待5min,如果告警消除,操作结束。如果告警没有消除,执行4

  4. 根据业务情况修改表的结构、删除或新增表,直到集群内该表在所有节点上元数据一致。等待5min,查看告警是否消除。

    • 是,操作结束。
    • 否,执行5

  1. 若确认该表需要且已经被删除,手动清除告警,观察告警是否还会上报。

    • 是,执行6
    • 否,操作结束。

收集故障信息

  1. 在FusionInsight Manager界面,选择“运维 > 日志 > 下载”。
  2. 在“服务”中勾选待操作集群的“ClickHouse”。
  3. 在“主机”中选择异常的主机,单击“确定”。
  4. 单击右上角的时间编辑按钮,设置日志收集的“开始时间”和“结束时间”分别为告警产生时间的前后1小时,单击“下载”。
  5. 请联系运维人员,并发送已收集的故障日志信息。

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

不涉及。