本文介绍了一些 TiFlash 常见问题、原因及解决办法。
TiFlash 未能正常启动
该问题可能由多个因素构成,可以通过以下步骤依次排查:
-
检查系统环境是否是 CentOS8。
CentOS8 中缺少
libnsl.so
系统库,可以通过手动安装的方式解决:dnf install libnsl
-
检查系统的
ulimit
参数设置。ulimit -n 1000000
-
使用 PD Control 工具检查在该节点(相同 IP 和 Port)是否有之前未成功下线的 TiFlash 实例,并将它们强制下线。(下线步骤参考手动缩容 TiFlash 节点)
如果遇到上述方法无法解决的问题,可以打包 TiFlash 的 log 文件夹,并在 AskTUG 社区中提问。
TiFlash 副本始终处于不可用状态
该问题一般由于配置错误或者环境问题导致 TiFlash 处于异常状态,可以先通过以下步骤定位问题组件:
-
使用 pd-ctl 检查 PD 的 Placement Rules 功能是否开启:
echo 'config show replication' | /path/to/pd-ctl -u http://${pd-ip}:${pd-port}
- 如果返回
true
,进入下一步。 - 如果返回
false
,你需要先开启 Placement Rules 特性 后再进入下一步。
- 如果返回
-
通过 TiFlash-Summary 监控面板下的 UpTime 检查操作系统中 TiFlash 进程是否正常。
-
通过 pd-ctl 查看 TiFlash proxy 状态是否正常:
echo "store" | /path/to/pd-ctl -u http://${pd-ip}:${pd-port}
store.labels 中含有
{"key": "engine", "value": "tiflash"}
信息的为 TiFlash proxy。 -
查看 pd buddy 是否正常打印日志(日志路径的对应配置项 [flash.flash_c