跳转至

TiDB 分布式数据库:入门与安装实践

适用读者:DBA、开发、数据平台工程师 目标:通过 TiUP 快速启动 TiDB 集群,理解组件与基本运维。


1. TiDB 概述

  • 类型:开源分布式 NewSQL,兼容 MySQL 协议
  • 组件:TiDB(SQL 层)、PD(调度)、TiKV(存储)、TiFlash(列存-HTAP)
  • 亮点:弹性扩展、强一致、在线扩缩容、HTAP、MySQL 兼容

2. 快速体验(TiUP Playground)

要求:Linux/macOS,内存 ≥ 8GB

# 安装 TiUP(中国大陆建议加环境代理)
curl --proto '=https' -fsSL https://tiup.io/install.sh | sh
source ~/.tiup/bin/tiup

# 启动本地体验集群(v7.5.0 示例)
TiUP playground v7.5.0 --db 1 --pd 1 --kv 3 --tiflash 1
# 输出包含 TiDB 连接地址,默认 4000 端口

# 连接
mysql -h127.0.0.1 -P4000 -uroot --comments

3. 生产化部署(TiUP Cluster)

# 1) 安装 tiup cluster 组件
tiup update --self && tiup update cluster

# 2) 拓扑示例(topology.yaml)
cat > topology.yaml <<'YAML'
global:
  user: tidb
  ssh_port: 22
  deploy_dir: /data/tidb-deploy
  data_dir: /data/tidb-data
pd_servers:
  - host: 10.0.1.10
  - host: 10.0.1.11
  - host: 10.0.1.12
tidb_servers:
  - host: 10.0.1.20
  - host: 10.0.1.21
tikv_servers:
  - host: 10.0.1.30
  - host: 10.0.1.31
  - host: 10.0.1.32
tiflash_servers:
  - host: 10.0.1.40
monitoring_servers:
  - host: 10.0.1.50
grafana_servers:
  - host: 10.0.1.51
alertmanager_servers:
  - host: 10.0.1.52
YAML

# 3) 部署与启动
tiup cluster deploy prod v7.5.0 topology.yaml --user root -p
tiup cluster start prod

tiup cluster display prod

4. 基本操作与维护

-- 创建库表
CREATE DATABASE demo;
USE demo;
CREATE TABLE t1(id BIGINT PRIMARY KEY, name VARCHAR(50));
INSERT INTO t1 VALUES (1,'hello'),(2,'tidb');
SELECT * FROM t1;

-- 查看集群信息(在 SQL 中)
SHOW CONFIG;
SHOW PLACEMENT LABELS;
# 扩容一个 TiKV
tiup cluster scale-out prod scale.yaml

# 滚动升级
tiup cluster upgrade prod v7.6.0

# 备份恢复(BR)
BR backup full --pd http://10.0.1.10:2379 --storage s3://bucket/backup --s3.endpoint http://minio:9000
BR restore full --pd http://10.0.1.10:2379 --storage s3://bucket/backup

5. 常见问题

  • SQL 兼容:MySQL 绝大部分语法兼容,但个别系统函数/变量不同
  • 事务:悲观/乐观事务模式选择,长事务避免
  • 写热点:通过 SHARD_ROW_ID_BITS/分区/Placement Rules 规避
  • GC:GC 生命周期与大事务冲突,合理设置 tikv_gc_life_time

6. 最佳实践

1) 三副本;2) 使用 Placement Rules 管理多机房;3) 避免巨表单分区;4) 压测容量规划;5) 定期备份与演练;6) 监控与告警(Prometheus/Grafana);7) 版本跟随 LTS


参考: - TiDB 文档 https://docs.pingcap.com/ - TiUP https://tiup.io