更新时间:2024-11-12 GMT+08:00

ALM-45447 ClickHouse表只读

本章节仅适用于MRS 3.3.1及之后版本。

告警解释

系统每隔1分钟检测一次表的状态,当检测到有表处于只读状态,系统产生告警。当没有表处于只读状态,告警自动消除。

告警属性

告警ID

告警级别

是否可自动清除

45447

次要

告警参数

类别

参数名称

参数含义

定位信息

来源

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

服务名

产生告警的服务名称。

角色名

产生告警的角色名称。

主机名

产生告警的主机名。

对系统的影响

  • 只读的表无法写入数据和修改数据。
  • 影响复制表的数据同步,导致数据不一致。

可能原因

ZooKeeper压力大,元数据丢失。

处理步骤

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

    cd {客户端安装路径}

    source bigdata_env

    • 安全模式(开启Kerberos):

      kinit 组件业务用户

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

    • 普通模式(关闭Kerberos):

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

  3. 执行以下SQL语句,查看是否有表处于只读状态。

    select database,table from system.replicas where is_readonly = 1

    • 是,执行4
    • 否,执行8

  4. 依次执行以下SQL语句,其中database和table是3中查询的结果。SQL执行完后,再执行3中的SQL,查看结果中是否包含当前只读表。

    system restore replica database.table

    system restart replica database.table

    • 是,执行5
    • 否,执行8

  5. 依次执行以下SQL语句,其中database和table是3中查询的结果。SQL执行完后,再执行3中的SQL,查看结果中是否包含当前只读表。

    detach table database.table

    attach table database.table

    • 是,执行6
    • 否,执行8

  6. 执行以下SQL语句,查看只读表的结构信息,其中database和table是3中查询的结果。

    show create table database.table;

  7. 执行以下SQL语句,删除只读表,再根据6的表结构信息,重新创建只读表,等待几分钟,再执行3中的SQL,查看结果中是否包含当前只读表。

    drop database.table no delay;

    • 是,执行9
    • 否,执行8

  8. 等待几分钟查看告警是否清除。

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

收集故障信息

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

告警清除

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

参考信息

不涉及。