[FAQ] supervise 方式启动 TiDB 在使用 import 导入 TiUP 报错解决办法

【问题澄清】

  • 使用 tidb-ansible 部署且启动方式为 superviseTiDB 集群在 importTiUP 时会出现如下报错:
    “Error: only support cluster deployed with systemd”

【解决方案】

目前仅支持 systemd 方式启动的 ansible 环境可以 importTiUP,非 systemd 方式在导入时会出现上面报错,因此需要修改启动方式:supervise -> systemd

参考:https://docs.pingcap.com/zh/tidb/stable/online-deployment-using-ansible#如何调整进程监管方式从-supervise-到-systemd

【具体步骤】

  1. 针对 tidb-server & tikv-server 执行:
ansible-playbook stop.yml  -l alias_name 

注: 如果 inventory.ini 中为节点配置了别名,如 node101 ansible_host=172.16.10.101 ,执行 ansible-playbook-l 请指定别名,以下步骤类似,比如 ansible-playbook stop.yml -l node101,没有指定别名且单机单实例使用 ansible-playbook stop.yml -l ${ip},对于一个机器部署不同组件,使用 ansible-playbook stop.yml -l ${ip} --tags=${组件名称}

  1. 在每次 stop 节点之后,对 inventory 文件进行修改
process_supervision = systemd

修改完成之后执行

ansible-playbook deploy.yml -l alias_name  
ansible-playbook start.yml  -l alias_name
  1. 针对 PD 组件,先修改非 leader 节点,然后进行 leader transfer,最后进行 leader 节点修改

(1)非 leader 节点,参考 2 ,注意在 deploy 之前修改 supervise -> systemd

ansible-playbook stop.yml  -l alias_name
ansible-playbook deploy.yml -l alias_name  
ansible-playbook start.yml  -l alias_name

(2)transfer leader 以及检查其他节点状态

  • pd-ctl member leader transfer leader_name

  • pd-ctl member

  • pd-ctl health

都正常进行下一步

(3)修改 pd leader 启动方式,参考如上步骤

ansible-playbook stop.yml  -l leader_name 
ansible-playbook deploy.yml -l leader_name   
ansible-playbook start.yml  -l leader_name

(4)如有异常,根据报错处理

  1. 执行 import 操作

注:以上处理过程不支持 2.x 版本

1赞