## 前言
TiDB集群核心由PD、TiKV、TiDB、TiFlash四大组件构成,各组件功能特性不同,节点启停操作规范、风险点差异极大。其中PD为元数据管理核心、TiKV为数据存储核心,操作风险最高,TiDB为无状态计算节点,操作相对简单。本笔记整合标准化启停流程、实操命令、校验方式及避坑要点,适配生产、测试环境运维学习使用。
## 一、集群节点停止操作规范
1.1 PD节点停止(元数据管理节点,高风险)
1.1.1 核心特性与操作前提
PD是TiDB集群的元数据管理、调度、选举核心,集群默认部署3个PD节点,必须保证至少2个节点存活(多数节点),否则集群无法选举Leader,整体瘫痪。
1.1.2 停止方式(优先TiUP工具)
TiUP为官方推荐运维工具,自动适配集群配置,规避手动操作风险。
通用命令:
Plain Text# 停止指定集群、指定IP端口的PD节点tiup cluster stop <cluster-name> -R pd -N <node-ip>:<port> |
实操示例:
Plain Text# 停止mycluster集群192.168.1.10的PD节点(默认端口2379)tiup cluster stop mycluster -R pd -N 192.168.1.10:2379 |
1.1.3 手动停止方式
适用于特殊场景(TiUP异常、离线环境),登录目标节点执行:
Plain Text# 方式1:优雅终止进程kill -TERM <pd-pid># 方式2:systemd服务停止(端口为部署端口,默认2379)systemctl stop pd-2379 |
1.1.4 节点状态验证
Plain Text# 1.查看整体集群节点状态tiup cluster display <cluster-name># 2.查看PD集群成员状态(指定存活PD节点地址)tiup ctl:v<version> pd -u http://<存活PD地址>:2379 member |
1.1.5 关键注意事项
• 严格遵守PD节点多数存活原则(3节点集群≥2存活),禁止超半数PD节点离线;
• 若需永久移除PD节点,不可直接停止,需先执行缩容命令:tiup cluster scale-in <cluster-name> -N <node-ip>:<port>。
1.2 TiKV节点停止(数据存储节点,高风险)
1.2.1 核心特性与操作前提
TiKV为集群数据持久化存储节点,禁止直接停止节点。直接停机会触发集群自动数据重复制,占用大量网络、CPU资源,严重时导致集群读写卡顿,甚至数据副本不足。必须先驱逐节点数据,再停止服务。
1.2.2 标准化停止步骤(核心三步)
第一步:查询目标TiKV节点Store ID
Plain Texttiup cluster display <cluster-name> --format json | jq '.tikv[].store_id' |
第二步:驱逐节点数据(核心关键步骤)
Plain Text# 通过pd-ctl指定PD地址、Store ID,开启数据驱逐tiup ctl:v<version> pd -u http://<PD地址>:2379 store <store-id> --label=evict |
等待观察:通过 tiup cluster display <cluster-name> 查看节点状态,直至TiKV节点变为Down,代表数据迁移完成。
第三步:停止TiKV服务
通用命令:
Plain Texttiup cluster stop <cluster-name> -R tikv -N <node-ip>:<port> |
实操示例:
Plain Text# 停止192.168.1.20的TiKV节点(默认端口20160)tiup cluster stop mycluster -R tikv -N 192.168.1.20:20160 |
1.2.3 状态验证
执行 tiup cluster display <cluster-name>,确认目标TiKV节点状态为已停止,集群副本数正常。
1.2.4 关键注意事项
• 数据驱逐是TiKV停机的强制前置步骤,生产环境严禁跳过;
• 永久移除TiKV节点:数据驱逐完成 → 停止服务 → 执行缩容 tiup cluster scale-in。
1.3 TiDB节点停止(计算节点,低风险)
1.3.1 核心特性
TiDB为无状态SQL计算节点,不存储持久化数据,仅负责接收、解析、转发SQL请求,启停无数据丢失风险,仅影响节点上的现有业务连接。
1.3.2 停止方式
TiUP工具停止(推荐):
Plain Texttiup cluster stop <cluster-name> -R tidb -N <node-ip>:<port> |
实操示例:
Plain Text# 停止192.168.1.30的TiDB节点(默认端口4000)tiup cluster stop mycluster -R tidb -N 192.168.1.30:4000 |
手动停止:
Plain Textkill -TERM <tidb-pid>systemctl stop tidb-4000 |
1.3.3 后续操作与验证
• 负载均衡场景:将停机节点从LB后端节点列表中移除,避免无效流量转发;
• 业务验证:确认应用连接自动切换至其他存活TiDB节点,业务无报错。
1.3.4 注意事项
保证集群留存足够TiDB节点,避免单节点承载全部业务流量,引发接口超时、过载问题;K8s环境可通过TiDB Operator、kubectl指令管理节点。
## 二、集群节点启动操作规范
2.1 PD节点启动
2.1.1 TiUP启动(推荐)
Plain Texttiup cluster start <cluster-name> -R pd -N <node-ip>:<port> |
示例:
Plain Texttiup cluster start mycluster -R pd -N 192.168.1.10:2379 |
2.1.2 手动启动
Plain Textsystemctl start pd-2379# 或二进制启动./pd-server --config=<config-file> |
2.1.3 验证与注意事项
通过 tiup cluster display <cluster-name> 查看节点正常在线;PD启动后会自动同步集群元数据,同步耗时几秒至几分钟,属于正常现象,无需手动干预。
2.2 TiKV节点启动
2.2.1 TiUP启动(推荐)
Plain Texttiup cluster start <cluster-name> -R tikv -N <node-ip>:<port> |
示例:
Plain Texttiup cluster start mycluster -R tikv -N 192.168.1.20:20160 |
2.2.2 手动启动
Plain Textsystemctl start tikv-20160./tikv-server --config=<config-file> |
2.2.3 验证与注意事项
节点启动后自动加入集群,若该节点此前执行过数据驱逐,会自动从其他TiKV节点同步全量数据,数据同步完成后节点恢复正常读写能力,期间集群性能轻微波动属于正常情况。
2.3 TiDB节点启动
2.3.1 TiUP启动(推荐)
Plain Texttiup cluster start <cluster-name> -R tidb -N <node-ip>:<port> |
示例:
Plain Texttiup cluster start mycluster -R tidb -N 192.168.1.30:4000 |
2.3.2 手动启动
Plain Textsystemctl start tidb-4000./tidb-server --config=<config-file> |
2.3.3 验证
通过集群状态命令确认节点在线,将节点重新加入负载均衡后端,验证业务连接正常接入。
2.4 TiFlash节点重启实操
TiFlash为列式存储分析节点,常用重启命令:
Plain Text# 重启指定TiFlash节点tiup cluster restart crmdb -R tiflash -N 10.10.10.90:9000# 验证节点状态tiup cluster display crmdb |
## 三、多环境适配说明
3.1 物理机/虚拟机环境
优先使用 TiUP 运维启停,自动处理配置加载、服务依赖、集群注册,是社区官方标准方案;特殊场景可使用systemd、二进制手动启停。
3.2 Kubernetes环境
依托 TiDB Operator 管理,不直接操作节点,通过副本数、CRD配置管控集群:
Plain Text# 调整TiDB Pod副本数,实现节点启停扩容/缩容kubectl scale statefulset tidb -n <namespace> --replicas=<new-replicas># 编辑集群CRD配置kubectl edit tidbcluster <cluster-name> -n <namespace> |
## 四、通用运维前置规范(生产必看)
1. 数据备份:所有节点启停、变更操作前,务必备份集群关键数据,规避误操作数据风险;
2. 监控观测:操作全程通过 tiup cluster display、Grafana监控面板实时观测集群状态、副本状态、读写延迟;
3. 低峰操作:生产环境所有节点变更,优先选择业务低峰期执行,减少对线上业务的影响;
4. 预留重试机制:业务侧配置数据库连接重试、熔断机制,适配节点启停短暂连接中断场景。
## 五、常见故障与解决方案
1. PD节点停机后集群无Leader:原因是存活PD节点不足半数,解决方案:立即启动离线PD节点,保证集群≥2个PD存活;
2. TiKV停机后副本不足、集群卡顿:未提前驱逐数据导致,解决方案:等待集群自动补全数据副本,后续严格执行先驱逐、后停机规范;
3. TiDB停机后业务报错:负载均衡未更新、无存活节点兜底,解决方案:及时更新LB配置,保证多TiDB节点冗余部署。
## 六、核心操作总结对照表
节点类型 |
停止核心流程 |
启动核心命令 |
核心注意事项 |
PD |
1.校验存活节点≥2;2.执行tiup stop停机 |
tiup cluster start -R pd |
保证多数节点存活,防止集群无Leader |
TiKV |
1.查询Store ID;2.驱逐数据;3.等待迁移完成;4.停机 |
tiup cluster start -R tikv |
必须先驱逐数据,禁止直接停机 |
TiDB |
1.执行tiup stop停机;2.更新LB配置 |
tiup cluster start -R tidb |
无状态节点,注意业务连接切换 |