TiDB 的启动顺序

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:V3.0.9
  • 【问题描述】:TIDB集群的启动顺序,如果我一个集群有tidb、pd、tikv、pump、drianar、grafana、这些服务。他们的启动顺序应该是怎么排序的。
  1. TiDB Ansible 部署工具会优先启动 binlog 相关的组件(pump, drianer), 再启动 tidb、pd、tikv 等三个组件,最后启动监控相关的组件
  2. 请问关注 启动顺序的原因是?

我这边需要做这些服务的自启动。我发现所有的tidb、tikv、pump、drainer都会连接pd服务。是否pd是作为一个调度器的存在。这些组件的启动是否有优先级

容量、热点的调度相关的功能确认都放在 PD 上实现,但这个跟启动顺序没有关系,建议若有部署Binglog 相关的服务(pump、drainer),优先将 binglog 相关的服务启动,然后再是 pd, tikv,tidb

如果我同时部署了pump、drainer组件。此时机房断电了。这个时候另一个机房的tidb集群还在运行。pump、drainer是什么状态。

另一个机房的 tidb 集群是指下游吗? 如果 pump、drainer 所在的机房断电是指整体机房断电,还是?还是指网络有问题?

此时我只有一个tidb集群。但是集群是分开部署的。tidb、pd、kv是在一个机房内。然后pump、drainer是在另一个机房内。下游只是单机的mysql。pump、drainer的机房断电了或者是pump、drainer的机器异常关机了。pump、drainer在集群中的状态是什么。

”pump、drainer的机房断电“,“pump、drainer的机器异常关机”——无论是机房断电,还是异常关机,pump、drainer 都是停机状态,但反应到 TiDB 来说有可能写入数据会失败,需要通过命令忽略才能继续工作

部署Binglog 相关的服务(pump、drainer),优先将 binglog 相关的服务启动,然后再是 pd, tikv,tidb。如果这样启动。pump、drainer等启动脚本都有一个–pd-urls参数指向pd。此时pd还未启动。pump、drainer能启动么

抱歉前面的说法可能点不准确,如果第一次部署的话,顺序是: pd、tikv、 pump、 tidb、 drainer、监控

我这边按照这个流程操作一遍

好的,有问题请继续回贴,我们会即时跟进

drainer是自动去消费binlog,还是被动的通过某个组件消费的

drainer 会主动 pull pump server 上面的binlog 文件,然后消费。