TIDB集群如何开机自启动

【TiDB 版本】 2.1.6

【集群节点分布】 3台机器,每台机器部署1个TiDB、1个PD、2个TiKV、1个pump,第2台机器多部署1个drainer。

【问题】正常停止集群,所有机器关机,再开机。请问如何实现TiDB正确自启动?

可以在 tidb-ansible 的 start.yml 中将“systemd: name=tikv-{{ tikv_port }}.service state=started enabled=no” 的 enable=no 改为 enabled=yes,这样 systemd 就可以开机自启动对应服务了。

TiDB 的启动有顺序依赖,不建议修改配置。具体可以看下 ansible 的启动脚本,先 PD,再 TiKV ,再 TiDB。tidb-ansible/start.yml at master · pingcap/tidb-ansible · GitHub

我知道有启动顺序依赖,也熟悉集群相关yml脚本操作。现在的问题是:

  1. TiDB集群自己有没有开机自启动机制呢?
  2. 如果没有,我想撰写脚本(类似ansible-playbook start.yml)加入linux开机启动项实现目的。但是考虑到TiDB集群不是一台机器,无法保证执行自启动脚本时所有机器都已开机完成。

TiDB 集群目前没有开机自启动机制。如果需要开启自动启动,是否可以尝试将 ansible-playbook start.yml 启动脚本,加入到开机时自动执行,仅为一个思路。