
# ALM-45447 ClickHouse表只读
#### 告警解释
系统每隔1分钟检测一次表的状态，当检测到有表处于只读状态，系统产生告警。当没有表处于只读状态，告警自动消除。
本章节仅适用于MRS 3.3.1-LTS及之后版本。
#### 告警属性
| 告警ID  | 告警级别 | 是否可自动清除 |
|:---|:---|:---|
| 45447 | 重要   | 是       |
   
#### 告警参数
| 类别   | 参数名称 | 参数含义          |
|:---|:---|:---|
| 定位信息 | 来源   | 产生告警的集群或系统名称。 |
| 定位信息 | 服务名  | 产生告警的服务名称。    |
| 定位信息 | 角色名  | 产生告警的角色名称。    |
| 定位信息 | 主机名  | 产生告警的主机名。     |
   
#### 对系统的影响
- 只读的表无法写入数据和修改数据。
- 影响复制表的数据同步，导致数据不一致。
 
#### 可能原因
ZooKeeper压力大，元数据丢失。
#### 处理步骤
1. 登录FusionInsight Manager页面，选择"运维 \> 告警 \> 告警"，查看当前告警"定位信息"中的角色名以及确认主机名所在的IP地址。 
   登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
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 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 table database.table no delay；
   ```
   - 是，执行[步骤 9]。
   
   - 否，执行[步骤 8]。
   
   
   ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001861389809.png "点击放大")
   
   
8. 等待几分钟查看告警是否清除。
   
   - 是，操作结束。
   
   - 否，执行[步骤 9]。
   
   
   
   
**收集故障信息**
9. 在FusionInsight Manager界面，选择"运维 \> 日志 \> 下载"。
10. 在"服务"中勾选待操作集群的"ClickHouse"。
11. 在"主机"中选择异常的主机，单击"确定"。
12. 单击右上角的时间编辑按钮，设置日志收集的"开始时间"和"结束时间"分别为告警产生时间的前后1小时，单击"下载"。
13. 请联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
不涉及。
