一、环境准备
1. 硬件要求
- 服务器架构:鲲鹏服务器(ARM架构),TiDB 官方明确支持 ARM 架构服务器部署
- 推荐配置(生产环境):
- TiDB节点:16核+ / 32GB+ 内存 / SAS 硬盘 / 万兆网卡
- PD节点:4核+ / 8GB+ 内存 / SSD 硬盘 / 万兆网卡
- TiKV节点:8核+ / 32GB+ 内存 / SSD 硬盘(建议 NVMe)
2. 操作系统
- 版本信息
NAME="openEuler"
VERSION="24.03 (LTS-SP1)"
ID="openEuler"
VERSION_ID="24.03"
PRETTY_NAME="openEuler 24.03 (LTS-SP1)"
ANSI_COLOR="0;31"
-
需完成以下系统配置:
- 将部署目标机器数据盘格式化成 ext4 文件系统,挂载时添加
nodelalloc
和noatime
挂载参数 - 检测及安装 NTP 服务
- 创建部署用户tidb,并设置免密sudo,以及ssh免密互信
- 将部署目标机器数据盘格式化成 ext4 文件系统,挂载时添加
二、集群部署
使用 TiUP 自动化部署(推荐)
------我这里是联网部署,如果是离线的请参考官方制作离线镜像)
- tiup安装部署
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
source .bash_profile
which tiup
tiup cluster
tiup update --self && tiup update cluster
tiup --binary cluster
- tidb集群部署
version=v8.5.1
tiup mirror clone tidb-community-server-${version}-linux-arm ${version} --os=linux --arch=arm64
cd tidb-community-server-v8.5.1-linux-arm/
bash local_install.sh
source /home/tidb/.bash_profile
创建部署文件topology.yaml 我们目前是在一台鲲鹏的服务器上试用
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/data1/tidb-deploy"
data_dir: "/data1/tidb-data"
listen_host: 0.0.0.0
arch: "arm64"
monitored:
node_exporter_port: 9100
blackbox_exporter_port: 9115
deploy_dir: "/data1/tidb-deploy/monitored-9100"
data_dir: "/data1/tidb-data/monitored-9100"
log_dir: "/data1/tidb-deploy/monitored-9100/log"
server_configs:
tidb:
log.level: "warn"
log.file.max-days: 7
log.slow-threshold: 300
max-index-length: 12288
mem-quota-query: 5368709120
performance.txn-total-size-limit: 5368709120
prepared-plan-cache.enabled: true
tikv:
log.level: "warn"
storage.block-cache.capacity: 30GB
pd:
replication.location-labels:
- host
pd_servers:
- host: xx.x.xx.xx
name: "pd-1"
deploy_dir: "/data1/tidb-deploy/pd-2379"
data_dir: "/data1/tidb-data/pd-2379"
log_dir: "/data1/tidb-deploy/pd-2379/log"
tidb_servers:
- host: xx.x.xx.xx
port: 4000
status_port: 10080
deploy_dir: "/data1/tidb-deploy/tidb-4000"
log_dir: "/data1/tidb-deploy/tidb-4000/log"
tikv_servers:
- host: xx.x.xx.xx
port: 20160
status_port: 20180
deploy_dir: "/data2/tidb-deploy/tikv-20160"
data_dir: "/data2/tidb-data/tikv-20160"
log_dir: "/data2/tidb-deploy/tikv-20160/log"
config:
log.level: warn
tiflash_servers:
- host: xx.x.xx.xx
ssh_port: 22
tcp_port: 9000
flash_service_port: 3930
flash_proxy_port: 20170
flash_proxy_status_port: 20292
metrics_port: 8234
deploy_dir: /data3/tidb-deploy/tiflash-9000
data_dir: /data3/tidb-data/tiflash-9000
log_dir: /data3/tidb-deploy/tiflash-9000/log
kvcdc_servers:
- host: xx.x.xx.xx
ssh_port: 22
port: 8600
data_dir: "/data1/tidb-data/tikv-cdc-8600"
log_dir: "/data1/tidb-deploy/tikv-cdc-8600/log"
monitoring_servers:
- host: xx.x.xx.xx
deploy_dir: "/data1/tidb-deploy/prometheus-8249"
data_dir: "/data1/tidb-data/prometheus-8249"
log_dir: "/data1/tidb-deploy/prometheus-8249/log"
grafana_servers:
- host: xx.x.xx.xx
deploy_dir: "/data1/tidb-deploy/grafana-3000"
alertmanager_servers:
- host: xx.x.xx.xx
deploy_dir: "/data1/tidb-deploy/alertmanager-9093"
data_dir: "/data1/tidb-data/alertmanager-9093"
log_dir: "/data1/tidb-deploy/alertmanager-9093/log"
config_file: "/data1/tidb-deploy/alertmanager-9093/bin/alertmanager/alertmanager.yml"
安装集群并启动
tiup cluster check ./topology.yaml --user tidb
tiup cluster check ./topology.yaml --apply --user tidb
sudo yum install numactl
tiup cluster check ./topology.yaml --user tidb
tiup cluster deploy tidb-test v8.5.1 ./topology.yaml --user tidb
tiup cluster start tidb-test --init
三、集群验证
1. 状态检查
tiup cluster display tidb-test
2. 基础功能测试
- 安装一个mysql客户端
sudo dnf update
sudo dnf install mysql
通过 MySQL 客户端连接
mysql -h xx.x.xx.xx -P 4000 -u root -pxxx
-- 创建测试数据
CREATE DATABASE test;
USE test;
CREATE TABLE user (id INT PRIMARY KEY, name VARCHAR(20));
INSERT INTO user VALUES (1, '鲲鹏用户');
SELECT * FROM user;
-- 创建 TiFlash 副本(列存引擎)
ALTER TABLE user SET TIFLASH REPLICA 1;
四、常见问题解决
问题现象 | 解决方案 | |
---|---|---|
ARM 架构兼容性警告 | 确认 TiDB 版本 ≥ v5.0(原生支持 ARM) | |
PD 节点选举异常 | 检查 NTP 时间同步(偏差需 ≤500ms) | |
TiKV 存储性能不足 | 调整 rocksdb.max-background-jobs 参数 |
五、最佳实践建议
- 网络优化:建议使用 RDMA 网络(鲲鹏服务器优势)降低 TiKV 延迟
- 监控体系:集成 Prometheus + Grafana(自动部署)监控 QPS/延迟/存储水位
- 备份策略:使用 cdc同步数据到备份集群,保证数据安全