鲲鹏服务器上部署TiDB数据库的完整实战指南

发布时间:2026/11/4 20:26:21
鲲鹏服务器上部署TiDB数据库的完整实战指南

1. 环境准备与前置检查

在国产鲲鹏服务器上部署TiDB数据库前,需要做好充分的环境准备。我最近在Kylin Linux Advanced Server V10(ARM64架构)上完成了TiDB v8.5.5的部署,这里分享完整的实战经验。

1.1 硬件配置要求

TiDB作为分布式数据库,对硬件资源有一定要求。我的测试环境配置如下:

组件推荐配置我的实际配置
CPU16核以上12核鲲鹏920
内存64GB以上48GB DDR4
存储NVMe SSD, 500GB以上1TB SATA SSD
网络10Gbps网卡千兆以太网

提示:虽然我的配置略低于推荐值,但对于测试和学习环境完全够用。生产环境建议严格遵循官方推荐配置。

1.2 操作系统准备

Kylin Linux作为国产操作系统,在ARM架构上运行良好。部署前需要确认:

# 检查系统版本 cat /etc/kylin-release # 检查CPU架构 uname -m

输出应为:

Kylin Linux Advanced Server release V10 (Tercel) aarch64

1.3 系统参数优化

为确保TiDB性能,需要对系统参数进行调整:

# 修改文件描述符限制 echo "* soft nofile 1000000" >> /etc/security/limits.conf echo "* hard nofile 1000000" >> /etc/security/limits.conf # 调整内核参数 echo "vm.swappiness = 0" >> /etc/sysctl.conf echo "net.core.somaxconn = 32768" >> /etc/sysctl.conf sysctl -p

2. TiUP工具安装与配置

TiUP是TiDB官方推荐的部署工具,极大简化了部署流程。

2.1 安装TiUP

在Kylin系统上安装TiUP需要注意ARM架构适配:

# 安装TiUP curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh # 使环境变量生效 source ~/.bashrc # 验证安装 tiup --version

典型输出:

1.16.4 v1.16.2-nightly-90 Go Version: go1.24.1 Git Ref: master GitHash: 908be86076919952e4c3f1e52c214c2f45be14e9

2.2 安装cluster组件

TiDB集群管理需要单独安装cluster组件:

tiup install cluster

安装过程中会自动下载ARM架构的二进制包,如:

download https://tiup-mirrors.pingcap.com/cluster-v1.16.4-linux-arm64.tar.gz

3. 集群拓扑配置

单机部署需要精心设计拓扑结构,合理分配资源。

3.1 创建部署目录

mkdir -p /opt/tidb/{tidb-deploy,tidb-data}

目录结构说明:

  • /opt/tidb/tidb-deploy:存放二进制文件和配置文件
  • /opt/tidb/tidb-data:存放数据文件

3.2 编写topology.yaml

创建集群拓扑配置文件:

global: user: "tidb" ssh_port: 22 deploy_dir: "/opt/tidb/tidb-deploy" data_dir: "/opt/tidb/tidb-data" server_configs: tidb: {} tikv: storage.block-cache.capacity: "10GB" pd: {} pd_servers: - host: 192.168.0.119 tidb_servers: - host: 192.168.0.119 port: 4000 status_port: 10080 tikv_servers: - host: 192.168.0.119 port: 20160 status_port: 20180

关键参数说明:

  • storage.block-cache.capacity:TiKV缓存大小,建议不超过物理内存的45%
  • port:各组件服务端口,确保不冲突
  • status_port:监控指标端口

4. 集群部署与初始化

4.1 执行部署命令

tiup cluster deploy tidb-single v8.5.5 topology.yaml --user root -p

参数解释:

  • tidb-single:集群名称
  • v8.5.5:TiDB版本
  • --user root:使用root权限初始化
  • -p:SSH密码登录

4.2 解决sudo权限问题

部署时可能遇到错误:

executor.ssh.execute_failed sudo: no tty present and no askpass program specified

解决方法:

visudo # 添加以下内容 tidb ALL=(ALL) NOPASSWD: ALL

然后重新执行部署命令。

4.3 目录权限设置

chown -R tidb.tidb /opt/tidb

5. 集群启动与验证

5.1 初始化并启动集群

tiup cluster start tidb-single --init

成功启动后会显示root密码:

The root password of TiDB database has been changed. The new password is: 'e@25*17b-t68DA+Lgv'

重要:该密码只显示一次,务必妥善保存!

5.2 安装MySQL客户端

yum -y install mariadb

5.3 连接TiDB数据库

mysql -h127.0.0.1 -P4000 -uroot -p

登录后建议修改密码:

ALTER USER 'root'@'%' IDENTIFIED BY 'YourNewPassword'; FLUSH PRIVILEGES;

5.4 验证集群状态

SELECT tidb_version();

预期输出:

Release Version: v8.5.5 Edition: Community Store: tikv

6. 运维与监控

6.1 常用管理命令

# 查看集群状态 tiup cluster display tidb-single # 停止集群 tiup cluster stop tidb-single # 重启集群 tiup cluster restart tidb-single

6.2 访问监控面板

TiDB集成了Prometheus和Grafana,监控面板地址:

  • Grafana: http://服务器IP:3000
  • Dashboard: http://服务器IP:2379/dashboard

默认用户名/密码:admin/admin

7. 性能调优建议

7.1 TiKV参数优化

修改topology.yaml中的tikv配置:

tikv: storage.block-cache.capacity: "12GB" rocksdb.defaultcf.block-cache-size: "8GB" rocksdb.writecf.block-cache-size: "2GB"

7.2 系统层面优化

# 调整预读值 echo "vm.zone_reclaim_mode = 0" >> /etc/sysctl.conf echo "vm.dirty_ratio = 20" >> /etc/sysctl.conf sysctl -p

8. 常见问题排查

8.1 端口冲突问题

错误现象:

Address already in use

解决方法:

  1. 检查端口占用:netstat -tunlp | grep 端口号
  2. 修改topology.yaml中的端口配置
  3. 重新部署

8.2 内存不足问题

错误现象:

OOM killer terminated TiKV

解决方法:

  1. 降低storage.block-cache.capacity值
  2. 增加服务器内存
  3. 减少并发连接数

8.3 ARM架构兼容性问题

错误现象:

illegal instruction

解决方法:

  1. 确认下载的是ARM版本组件
  2. 检查CPU指令集支持:cat /proc/cpuinfo | grep features
  3. 联系PingCAP技术支持

在实际部署过程中,我发现Kylin Linux对ARM架构的支持非常完善,TiDB在鲲鹏服务器上的性能表现也相当出色。对于国产化替代场景,这套组合方案值得推荐。