TiDB单机部署指南:从零开始快速搭建本地环境
2025.09.17 11:04浏览量:0简介:本文详细介绍TiDB单机部署的完整流程,涵盖环境准备、组件安装、配置优化及验证测试,提供可复用的脚本和故障排查方案,适合开发测试及轻量级业务场景。
一、单机部署TiDB的适用场景与优势
TiDB作为一款开源的分布式HTAP数据库,通常以集群形式运行以提供高可用和水平扩展能力。但在开发测试、个人学习或轻量级业务场景中,单机部署能够以更低的资源成本快速验证功能。单机模式通过将PD、TiKV、TiDB等核心组件部署在同一节点,简化了网络配置和运维复杂度,尤其适合以下场景:
- 开发环境搭建:开发者可在本地快速构建与生产环境兼容的数据库服务,避免依赖云端资源。
- 功能验证与测试:在CI/CD流水线中集成单机版TiDB,进行单元测试或性能基准测试。
- 边缘计算场景:资源受限的物联网设备或嵌入式系统需要轻量级数据库支持。
- 教学与演示:高校课程或技术分享中,通过单机版展示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为例:
# 安装Docker
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
# 安装Docker Compose
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
sudo chmod +x /usr/local/bin/docker-compose
(2)系统参数调优
修改/etc/sysctl.conf
以优化内核参数:
vm.swappiness=0
net.core.somaxconn=32768
net.ipv4.tcp_max_syn_backlog=16384
fs.file-max=1000000
应用配置:
sudo sysctl -p
三、单机部署TiDB的详细步骤
1. 使用TiUP快速部署(推荐)
TiUP是TiDB官方提供的集群管理工具,支持单机模式:
# 安装TiUP
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
source ~/.bashrc
# 创建单机部署配置文件
cat > tidb-single.yaml <<EOF
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/tidb-deploy"
data_dir: "/tidb-data"
server_configs:
tidb:
log.slow-threshold: 300
tikv:
rocksdb.max-background-jobs: 8
pd:
schedule.leader-schedule-limit: 4
pd_servers:
- host: 127.0.0.1
tidb_servers:
- host: 127.0.0.1
tikv_servers:
- host: 127.0.0.1
port: 20160
status_port: 20180
config:
server.grpc-concurrency: 4
rocksdb.write-buffer-size: "128MB"
monitoring_servers:
- host: 127.0.0.1
grafana_servers:
- host: 127.0.0.1
EOF
# 执行部署
tiup cluster deploy tidb-single v7.1.0 ./tidb-single.yaml --user root -p
tiup cluster start tidb-single
2. Docker Compose部署方案
对于快速验证场景,可使用官方提供的Docker Compose模板:
version: '3'
services:
pd:
image: pingcap/pd:v7.1.0
ports:
- "2379:2379"
volumes:
- ./pd_data:/data
command: --name=pd --data-dir=/data --client-urls=http://0.0.0.0:2379
tikv:
image: pingcap/tikv:v7.1.0
ports:
- "20160:20160"
volumes:
- ./tikv_data:/data
command: --addr=0.0.0.0:20160 --data-dir=/data --pd=http://pd:2379
depends_on:
- pd
tidb:
image: pingcap/tidb:v7.1.0
ports:
- "4000:4000"
command: --store=tikv --path=http://pd:2379
depends_on:
- tikv
启动服务:
docker-compose up -d
四、部署后验证与优化
1. 连接测试与基础操作
使用MySQL客户端连接TiDB:
mysql -h 127.0.0.1 -P 4000 -u root -p
执行基础SQL验证服务:
CREATE DATABASE testdb;
USE testdb;
CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50));
INSERT INTO users VALUES (1, 'TiDB User');
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 |
五、单机版升级与数据迁移
当需要升级到集群版本时,可通过以下步骤迁移数据:
- 使用
dumpling
导出数据:tiup dumpling -h 127.0.0.1 -P 4000 -u root -o /backup
- 在集群环境中使用
tidb-lightning
导入数据。
六、总结与最佳实践
单机部署TiDB为开发测试提供了高效便捷的解决方案,但需注意:
- 数据备份:定期使用
mydumper
备份数据,避免节点故障导致数据丢失。 - 资源监控:通过Grafana监控面板观察CPU、内存和磁盘使用情况。
- 版本管理:使用
tiup list tidb
查看可用版本,保持与生产环境一致。
通过合理配置和调优,单机版TiDB可在资源受限环境下提供接近生产环境的体验,为数据库开发和验证工作提供有力支持。
发表评论
登录后可评论,请前往 登录 或 注册