Linux下怎么部署TiDB分布式数据库

梦辰小哥_7595

梦辰小哥_7595

2026-06-22

290人浏览

原创

单机linux无法运行生产可用tidb集群,仅推荐tiup playground用于开发测试:启动1个tidb/pd/tikv全内存实例,端口4000,退出即清空;必须确保chrony时间偏移<50ms,否则tikv拒绝注册。

linux下怎么部署tidb分布式数据库

单机 Linux 上跑不了生产可用的 TiDB 分布式集群——组件没隔离、时钟不同步、IO 干扰、拓扑不可感知,tiup cluster deploy 启动后大概率卡在 clock offset too large 或 scheduler failed: no available stores 就停了。

用 tiup playground 快速验证本地功能是否正常

这是唯一推荐给开发/测试场景的单机启动方式,不模拟真实拓扑,但能跑通 SQL、看懂组件交互:

  • tiup playground 启动的是全内存模式,默认 1 个 tidb、1 个 pd、1 个 tikv,所有日志和数据都在临时目录,退出即清空
  • 必须确保 chrony 已运行且同步有效:chronyc tracking 输出的 Offset 应小于 50ms,否则 tikv 直接拒绝注册
  • 如果提示 libnsl.so.1: cannot open shared object file(常见于 CentOS Stream / KOS),补装:dnf install libnsl
  • 连接端口固定为 4000:mysql -h 127.0.0.1 -P 4000 -u root,无需密码

tiup cluster deploy 前必须确认的三件事

这不是“配好 YAML 就能跑”的流程,失败几乎都卡在这三个硬性前提上:

linux-performance-analyzer
linux-performance-analyzer

Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。

下载
  • systemd 必须启用且默认运行——tiup 生成的 service 文件依赖 systemctl daemon-reload 和 systemctl start tidb-server@xxx,Alpine 或最小化容器镜像直接报错静默退出
  • 所有目标节点时间必须毫秒级同步:chrony 配置里必须含 makestep 1 -1,禁用 ntpd;timedatectl status 的 System clock synchronized 必须为 yes
  • /data/tikv 和 /data/pd 所在文件系统不能是 ext4 + barrier=0 或 XFS + nobarrier——TiKV WAL 会损坏,现象是 Region 持续 Down 或 Pending Peer

扩容时 tiup cluster scale-out 失败的典型原因

加机器不是改完 topology.yaml 就完事,PD 调度策略和标签识别才是关键:

  • pd-ctl config set region-schedule-limit 8 —— 默认限流值是 4,SSD 集群下 Region 平衡慢得肉眼可见,不调这个,新节点长期空载
  • 新节点若打了 label(如 rack=us-east-1a),但没同步更新 PD 全局拓扑配置:pd-ctl config set location-labels "zone,rack,host",PD 会认为拓扑不完整,拒绝调度,日志反复出现 scheduler failed: no available stores
  • 扩容后务必检查 pd-ctl store 输出中新节点状态是否为 Up,且 leader_weight 和 region_weight 不为 0

为什么不用 Kubernetes 而坚持用 tiup 管物理机/VM

不是 K8s 不行,而是当你的硬件或业务有以下任一特征时,tiup 更可靠:

  • 需要 taskset -c 0-7 绑核给 tikv-server——K8s 的 cpuset 在高负载下仍可能被内核调度器穿透,TiKV 对 CPU cache locality 敏感
  • 用了 NVMe 直通或 DPDK 加速网卡——K8s CNI 插件难以绕过内核协议栈,而 tikv 的 gRPC 流量对微秒级延迟抖动极其敏感
  • PD 和 etcd 共享磁盘/CPU——K8s 上 etcd 常与 kube-apiserver 同节点,API 压力上升时 PD 心跳超时,触发误判驱逐,日志里满屏 lost leader

真正要建生产集群,3 台起,每台至少 64 核 / 128GB 内存 / NVMe SSD,pd 单独部署,tikv 和 tidb 混部但用 cgroups 隔离——这些细节漏掉任何一项,集群上线后都会在 Region 调度、时钟漂移或 WAL 刷盘上出问题。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

1893

5

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.07

2534

5

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

2023.06.29

2265

3

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2023.08.14

3621

10

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

2023.08.31

2431

3

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.05

827

5

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

2207

5

数据库对象名无效怎么解决
数据库对象名无效怎么解决

数据库对象名无效解决办法:1、检查使用的对象名是否正确,确保没有拼写错误;2、检查数据库中是否已存在具有相同名称的对象,如果是,请更改对象名为一个不同的名称,然后重新创建;3、确保在连接数据库时使用了正确的用户名、密码和数据库名称;4、尝试重启数据库服务,然后再次尝试创建或使用对象;5、尝试更新驱动程序,然后再次尝试创建或使用对象。

2023.10.16

2227

4

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

2023.10.16

2773

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习