logo

TiDB单机部署指南:从零开始快速搭建本地环境

作者:新兰2025.09.17 11:04浏览量:0

简介:本文详细介绍TiDB单机部署的完整流程,涵盖环境准备、组件安装、配置优化及验证测试,提供可复用的脚本和故障排查方案,适合开发测试及轻量级业务场景。

一、单机部署TiDB的适用场景与优势

TiDB作为一款开源的分布式HTAP数据库,通常以集群形式运行以提供高可用和水平扩展能力。但在开发测试、个人学习或轻量级业务场景中,单机部署能够以更低的资源成本快速验证功能。单机模式通过将PD、TiKV、TiDB等核心组件部署在同一节点,简化了网络配置和运维复杂度,尤其适合以下场景:

  1. 开发环境搭建开发者可在本地快速构建与生产环境兼容的数据库服务,避免依赖云端资源。
  2. 功能验证与测试:在CI/CD流水线中集成单机版TiDB,进行单元测试或性能基准测试。
  3. 边缘计算场景:资源受限的物联网设备或嵌入式系统需要轻量级数据库支持。
  4. 教学与演示:高校课程或技术分享中,通过单机版展示TiDB的核心特性。

相较于集群部署,单机版无需配置多节点网络、负载均衡和分布式共识算法,但需注意其局限性:数据可靠性依赖本地存储,无法实现故障自动转移,且性能受限于单机硬件资源。

二、环境准备与依赖安装

1. 硬件与操作系统要求

  • 硬件配置:建议至少4核CPU、16GB内存、100GB磁盘空间(SSD更佳)。
  • 操作系统:支持Linux(CentOS 7+/Ubuntu 18.04+)和macOS(通过Docker)。
  • 网络要求:开放默认端口(2379/PD, 20160/TiKV, 4000/TiDB)。

2. 依赖项安装

(1)Docker与Docker Compose

单机部署推荐使用Docker容器化方案,避免直接操作系统服务。以Ubuntu为例:

  1. # 安装Docker
  2. sudo apt update
  3. sudo apt install -y docker.io
  4. sudo systemctl enable --now docker
  5. # 安装Docker Compose
  6. sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  7. sudo chmod +x /usr/local/bin/docker-compose

(2)系统参数调优

修改/etc/sysctl.conf以优化内核参数:

  1. vm.swappiness=0
  2. net.core.somaxconn=32768
  3. net.ipv4.tcp_max_syn_backlog=16384
  4. fs.file-max=1000000

应用配置:

  1. sudo sysctl -p

三、单机部署TiDB的详细步骤

1. 使用TiUP快速部署(推荐)

TiUP是TiDB官方提供的集群管理工具,支持单机模式:

  1. # 安装TiUP
  2. curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
  3. source ~/.bashrc
  4. # 创建单机部署配置文件
  5. cat > tidb-single.yaml <<EOF
  6. global:
  7. user: "tidb"
  8. ssh_port: 22
  9. deploy_dir: "/tidb-deploy"
  10. data_dir: "/tidb-data"
  11. server_configs:
  12. tidb:
  13. log.slow-threshold: 300
  14. tikv:
  15. rocksdb.max-background-jobs: 8
  16. pd:
  17. schedule.leader-schedule-limit: 4
  18. pd_servers:
  19. - host: 127.0.0.1
  20. tidb_servers:
  21. - host: 127.0.0.1
  22. tikv_servers:
  23. - host: 127.0.0.1
  24. port: 20160
  25. status_port: 20180
  26. config:
  27. server.grpc-concurrency: 4
  28. rocksdb.write-buffer-size: "128MB"
  29. monitoring_servers:
  30. - host: 127.0.0.1
  31. grafana_servers:
  32. - host: 127.0.0.1
  33. EOF
  34. # 执行部署
  35. tiup cluster deploy tidb-single v7.1.0 ./tidb-single.yaml --user root -p
  36. tiup cluster start tidb-single

2. Docker Compose部署方案

对于快速验证场景,可使用官方提供的Docker Compose模板:

  1. version: '3'
  2. services:
  3. pd:
  4. image: pingcap/pd:v7.1.0
  5. ports:
  6. - "2379:2379"
  7. volumes:
  8. - ./pd_data:/data
  9. command: --name=pd --data-dir=/data --client-urls=http://0.0.0.0:2379
  10. tikv:
  11. image: pingcap/tikv:v7.1.0
  12. ports:
  13. - "20160:20160"
  14. volumes:
  15. - ./tikv_data:/data
  16. command: --addr=0.0.0.0:20160 --data-dir=/data --pd=http://pd:2379
  17. depends_on:
  18. - pd
  19. tidb:
  20. image: pingcap/tidb:v7.1.0
  21. ports:
  22. - "4000:4000"
  23. command: --store=tikv --path=http://pd:2379
  24. depends_on:
  25. - tikv

启动服务:

  1. docker-compose up -d

四、部署后验证与优化

1. 连接测试与基础操作

使用MySQL客户端连接TiDB:

  1. mysql -h 127.0.0.1 -P 4000 -u root -p

执行基础SQL验证服务:

  1. CREATE DATABASE testdb;
  2. USE testdb;
  3. CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50));
  4. INSERT INTO users VALUES (1, 'TiDB User');
  5. SELECT * FROM users;

2. 性能调优建议

  • 内存配置:修改tikv.toml中的rocksdb.block-cache-size(建议为可用内存的40%)。
  • 并发参数:调整tidb.toml中的prepared-plan-cache.capacity以提升重复查询性能。
  • 日志级别:生产环境建议将log-level设为info,开发环境可使用debug

3. 常见问题排查

现象 可能原因 解决方案
TiKV启动失败 端口冲突 检查`netstat -tulnp grep 20160`
连接超时 防火墙限制 关闭防火墙或开放端口
查询卡顿 磁盘I/O瓶颈 更换SSD或调整rocksdb.rate-limiter-agility

五、单机版升级与数据迁移

当需要升级到集群版本时,可通过以下步骤迁移数据:

  1. 使用dumpling导出数据:
    1. tiup dumpling -h 127.0.0.1 -P 4000 -u root -o /backup
  2. 在集群环境中使用tidb-lightning导入数据。

六、总结与最佳实践

单机部署TiDB为开发测试提供了高效便捷的解决方案,但需注意:

  1. 数据备份:定期使用mydumper备份数据,避免节点故障导致数据丢失。
  2. 资源监控:通过Grafana监控面板观察CPU、内存和磁盘使用情况。
  3. 版本管理:使用tiup list tidb查看可用版本,保持与生产环境一致。

通过合理配置和调优,单机版TiDB可在资源受限环境下提供接近生产环境的体验,为数据库开发和验证工作提供有力支持。

相关文章推荐

发表评论