FE服务故障如何恢复
问题现象
FE可能因为某些原因出现无法启动bdbje、FE之间无法同步等问题,无法进行元数据写操作、没有MASTER等。需要手动操作来恢复FE,手动恢复FE先通过当前“meta_dir”中的元数据,启动一个新的MASTER,然后再逐一添加其他FE。
操作步骤
- 结束所有FE进程,同时结束所有业务访问,保证在元数据恢复期间不受外部访问出现不可预期的问题。
- 查找FE所有实例节点上元数据,找到最新的一个节点FE,作为恢复的Master。
- 进入FE后台节点,查看配置文件“${BIGDATA_HOME}/FusionInsight_Doris_x.x.x/x_x_FE/etc/fe.conf”中参数“meta_dir”的值,该值即为元数据存储目录
- 寻找所有FE的元数据存储目录,查看此存储目录下子文件“image/image.xxxx”,其中“image.xxxx”后面的数字越大表示元数据越新,找到最新的一个FE,作为即将首个恢复的FE,即Master。
- 备份所有FE的元数据存储目录。
例如,元数据存储目录为“/srv/BigData/doris_fe/doris-meta”,执行以下命令进行备份:
cp -r /srv/BigData/doris_fe/doris-meta /srv/BigData/doris_fe/doris-meta.bak
- 进入2找到的元数据最新的FE所在节点(即Master),添加配置“metadata_failure_recovery=true”到“${BIGDATA_HOME}/FusionInsight_Doris_x.x.x/x_x_FE/etc/fe.conf”中,如果存在“${BIGDATA_HOME}/FusionInsight_Doris_x.x.x/x_x_FE_UPDATE”目录,则需要在“x_x_FE_UPDATE下fe.conf”中也添加该配置。
- 登录 FusionInsight Manager页面,选择“集群 > 服务 > 实例”,勾选3修改配置的FE节点,选择“更多 > 重启实例”重启FE实例,其他实例依旧停止状态不做操作。
- 观察FE启动后状态,启动成功后,在浏览器中连接此FE,例如,访问地址为“http://192.168.67.27:29980”。
登录FE WebUI界面后,单击“Playground”,选择“default_cluster:information_schema”,在右侧命令框中输入show frontends命令,单击“Excute”,如果“Results”列表中当前FE的“Alive”列的值为“true”,表示此FE已经恢复正常:
- 在FusionInsight Manager页面,选择“集群 > 服务 > 实例”,勾选非Master且运行状态为未启动的FE实例,选择“更多 > 删除实例”:
- 删除成功后,单击“添加实例”,重新添加6删除了的FE实例。
- 勾选配置过期的实例,选择“更多 > 重启实例”重启配置过期的FE实例,删除手动在FE所在节点上的“fe.conf”中添加的参数“metadata_failure_recovery”。
- 检查集群是否已经正常运行,并在FE WebUI中执行命令检查FE、BE、DBroker进程是否健康且都在一个集群中,查询结果中“Results”列表中所有实例的“Alive”列的值为“true”则表示进程健康:
例如,以下命令都在Doris WebUI界面的“Playground”的“default_cluster:information_schema”中执行: