一、环境准备
1. 系统配置
bash# 系统参数优化
cat >> /etc/sysctl.conf << EOF
fs.file-max=1000000
net.core.somaxconn=32768
vm.swappiness=0
net.ipv4.tcp_syncookies=0
EOF
sysctl -p
# 关闭系统防火墙
systemctl stop firewalld
systemctl disable firewalld
2. TiDB安装准备
bash# 创建tidb用户
useradd -m -s /bin/bash tidb
# 配置免密sudo
echo "tidb ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
# 安装必要工具
apt-get install -y numactl
二、集群部署
1. TiUP部署
bash# 安装TiUP
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
# 初始化环境变量
source ~/.bash_profile
# 安装集群管理组件
tiup cluster
2. 集群拓扑配置
yaml# topology.yaml
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/tidb-deploy"
data_dir: "/tidb-data"
pd_servers:
- host: 10.0.1.1
- host: 10.0.1.2
- host: 10.0.1.3
tidb_servers:
- host: 10.0.1.4
- host: 10.0.1.5
tikv_servers:
- host: 10.0.1.6
- host: 10.0.1.7
- host: 10.0.1.8
三、部署验证
1. 集群部署
bash# 部署集群
tiup cluster deploy tidb-test v5.4.0 ./topology.yaml --user tidb
# 启动集群
tiup cluster start tidb-test
# 验证集群状态
tiup cluster display tidb-test
2. 连接测试
bash# 使用MySQL客户端连接
mysql -h 10.0.1.4 -P 4000 -u root
# 检查集群状态
mysql> SHOW DATABASES;
mysql> SELECT VERSION();
四、性能优化
1. TiKV配置优化
toml[readpool]
# 存储线程池大小
storage.normal-concurrency = 8
coprocessor.normal-concurrency = 8
[storage]
# 调度工作线程数
scheduler-worker-pool-size = 4
[rocksdb]
# RocksDB缓存大小
block-cache-size = "30GB"
2. TiDB配置优化
toml[performance]
# SQL执行最大内存
max-memory = 32GB
# 并发执行SQL的worker数量
max-procs = 16
[prepared-plan-cache]
enabled = true
capacity = 100000
五、监控配置
1. Prometheus配置
yamlglobal:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'tidb'
static_configs:
- targets: ['10.0.1.4:10080', '10.0.1.5:10080']
- job_name: 'pd'
static_configs:
- targets: ['10.0.1.1:2379', '10.0.1.2:2379', '10.0.1.3:2379']
2. Grafana配置
bash# 导入TiDB Dashboard
grafana-cli plugins install grafana-tidb-dashboard
# 配置数据源
{
"name": "TiDB Cluster",
"type": "prometheus",
"url": "http://localhost:9090"
}
六、备份恢复
1. 备份配置
bash# 安装BR工具
tiup install br
# 全量备份
br backup full \
--pd "10.0.1.1:2379" \
--storage "local:///backup" \
--ratelimit 128 \
--log-file backup.log
2. 恢复配置
bash# 全量恢复
br restore full \
--pd "10.0.1.1:2379" \
--storage "local:///backup" \
--ratelimit 128 \
--log-file restore.log
七、运维管理
1. 日常维护
bash# 查看集群状态
tiup cluster display tidb-test
# 更新集群配置
tiup cluster edit-config tidb-test
# 滚动重启
tiup cluster reload tidb-test
2. 扩容缩容
bash# 扩容TiKV节点
tiup cluster scale-out tidb-test scale-out.yaml
# 缩容TiKV节点
tiup cluster scale-in tidb-test --node 10.0.1.8:20160
最佳实践建议
- 硬件选择
- 使用SSD存储
- 配置足够内存
- 选择高性能CPU
- 使用万兆网络
- 运维建议
- 定期备份数据
- 监控系统资源
- 及时清理日志
- 版本按计划升级
- 性能调优
- 合理设置地区分布
- 优化数据分布
- 调整GC参数
- 监控性能指标
本指南为您提供了在云服务器上部署和优化TiDB分布式数据库的完整方案。记住,TiDB的性能优化是一个持续的过程,需要根据实际业务场景和数据特点不断调整。建议在正式部署前进行充分的测试和性能评估。
同时,要注意保持TiDB版本的更新,关注新特性和性能改进,及时应用到生产环境中。对于生产环境的TiDB集群,建议建立完善的监控系统,确保能够及时发现和处理性能问题。
定期进行数据备份和恢复演练,确保在发生故障时能够快速恢复业务。同时,建议保持与TiDB社区的密切联系,及时获取最新的最佳实践和优化建议。