TiDB集群部署

发布于:2025-08-02 ⋅ 阅读:(18) ⋅ 点赞:(0)

架构:
tidb–3台,pd–3台,tikv–3台
8c16g200g
1x2.2x.2x7.124
1x2.2x.2x7.148
1x2.2x.2x7.87

1x2.2x.2x7.93
1x2.2x.2x7.127
1x2.2x.2x7.104

pd-3台
4c8g100g
1x2.2x.2x7.143
1x2.2x.2x7.132
1x2.2x.2x7.91

1、下载安装包 #注:我这里是我内部有一个文件共享站,包装包你可以 去官方网站下载。
tiup
wget http://1x2.1x.x.180:61/cxh/tidb-community-server-v7.5.2-linux-amd64.tar.gz
tidb工具包
wget http://1x2.1x.x.180:61/cxh/tidb-community-toolkit-v7.5.2-linux-amd64.tar.gz

2、安装
1) 配置ssh互信(这里提供一个脚本全自动帮你完成)
cat host_id_rsa.sh

#!/bin/bash

sshuser=‘root’
sshpassword=‘xxxxxxl’
rsa_count=‘id_rsa_count.pub’
ips=‘1x2.2x.2x7.124 1x2.2x.2x7.148 1x2.2x.2x7.87 1x2.2x.2x7.93 1x2.2x.2x7.127 1x2.2x.2x7.104 1x2.2x.2x7.143 1x2.2x.2x7.132 1x2.2x.2x7.91’

/usr/bin/which sshpass;if [[ “$?” != “0” ]];then yum -y install sshpass;fi
#安装sshpass
for ip in $ips ;do
echo ipsshpass−pip sshpass -pipsshpass−p{sshpassword} ssh root@ip−oStrictHostKeyChecking=no′/usr/bin/whichsshpass;if[["{ip} -o StrictHostKeyChecking=no '/usr/bin/which sshpass;if [[ "ip−oStrictHostKeyChecking=no 
′
 /usr/bin/whichsshpass;if[["?" != “0” ]];then yum -y install sshpass ;fi’
done

#生成密钥
for ip in ips;dosshpass−pips ;do sshpass -pips;dosshpass−p{sshpassword} ssh root@${ip} -o StrictHostKeyChecking=no ‘if [ ! -f ~/.ssh/id_rsa ]; then ssh-keygen -t rsa -P “” -f ~/.ssh/id_rsa; fi’
done

将公钥复制到远程主机
:>$rsa_count
for ip in ips;dosshpass−pips ;do sshpass -pips;dosshpass−p{sshpassword} ssh root@ip−oStrictHostKeyChecking=no′cat/root/.ssh/idrsa.pub′>>{ip} -o StrictHostKeyChecking=no 'cat /root/.ssh/id_rsa.pub' >>ip−oStrictHostKeyChecking=no 
′
 cat/root/.ssh/id 
r
​
 sa.pub 
′
 >>rsa_count
done

#把密钥汇总拷贝到所有机器
for ip in ips;dosshpass−pips ;do sshpass -pips;dosshpass−p{sshpassword} scp rsacountroot@{rsa_count} root@rsa 
c
​
 ountroot@{ip}:/root/authorized_keys
sshpass -psshpasswordsshroot@{sshpassword} ssh root@sshpasswordsshroot@{ip} -o StrictHostKeyChecking=no ‘mv /root/authorized_keys /root/.ssh/authorized_keys’
done

#触发
for ip in ips;dosshpass−pips ;do 
  sshpass -pips;dosshpass−p{sshpassword} ssh root@${ip} -o StrictHostKeyChecking=no “for iph in ips;dosshpass−pips ;do sshpass -pips;dosshpass−p{sshpassword} ssh root@$iph -o StrictHostKeyChecking=no ‘ip a|grep 172’ ;done”
done

在其中一台机器上跑密钥互信脚本 就行,例如在这台上 1x2.2x.2x7.124

sh host_id_rsa.sh

2)在机器1x2.2x.2x7.124中继续操作,解压tidb安装包和工具包
cp /opt
tar xvf tidb-community-server-v7.5.2-linux-amd64.tar.gz
tar xvf tidb-community-toolkit-v7.5.2-linux-amd64.tar.gz

安装tiup
cd tidb-community-server-v7.5.2-linux-amd64
sh local_install.sh

刷新环境变量
source /root/.bash_profile

执行tiup查看是否成功
tiup
通过tiup部署TiDB集群

生成配置文件模板
tiup cluster template > topology_test.yaml #这个是模板
修改配置文件,以下是我这边环境配置文件 ,你们可以根据自己的实际环境修改对应iP

cat topology_test.yaml

global:
  user: "tidb"
  ssh_port: 22
  deploy_dir: "/data/tidb-deploy"
  data_dir: "/data/tidb-data"
  arch: "amd64"
monitored:
  node_exporter_port: 9100
  blackbox_exporter_port: 9115
server_configs:
  pd:
    replication.location-labels: ["zone","dc","rack","host"]
tidb_servers:
  - host: 1x2.2x.2x7.124
    deploy_dir: "/data/tidb-deploy/tidb-4000"
    log_dir: "/data/tidb-deploy/tidb-4000/log"
  - host: 1x2.2x.2x7.148
    deploy_dir: "/data/tidb-deploy/tidb-4000"
    log_dir: "/data/tidb-deploy/tidb-4000/log"
  - host: 1x2.2x.2x7.87
    deploy_dir: "/data/tidb-deploy/tidb-4000"
    log_dir: "/data/tidb-deploy/tidb-4000/log"
pd_servers:
  - host: 1x2.2x.2x7.143
    deploy_dir: "/data/tidb-deploy/pd-2379"
    data_dir: "/data/tidb-data/pd-2379"
    log_dir: "/data/tidb-deploy/pd-2379/log"
  - host: 1x2.2x.2x7.132
    deploy_dir: "/data/tidb-deploy/pd-2379"
    data_dir: "/data/tidb-data/pd-2379"
    log_dir: "/data/tidb-deploy/pd-2379/log"
  - host: 1x2.2x.2x7.91
    deploy_dir: "/data/tidb-deploy/pd-2379"
    data_dir: "/data/tidb-data/pd-2379"
    log_dir: "/data/tidb-deploy/pd-2379/log"
tikv_servers:
  - host: 1x2.2x.2x7.93
    config:
      server.labels: { zone: "z1", dc: "d1", rack: "r1", host: "243179" }
    deploy_dir: "/data/tidb-deploy/tikv-20160"
    data_dir: "/data/tidb-data/tikv-20160"
    log_dir: "/data/tidb-deploy/tikv-20160/log"
  - host: 1x2.2x.2x7.127
    config:
      server.labels: { zone: "z1", dc: "d1", rack: "r1", host: "24373" }
    deploy_dir: "/data/tidb-deploy/tikv-20160"
    data_dir: "/data/tidb-data/tikv-20160"
    log_dir: "/data/tidb-deploy/tikv-20160/log"
  - host: 1x2.2x.2x7.104
    config:
      server.labels: { zone: "z1", dc: "d1", rack: "r1", host: "24393" }
    deploy_dir: "/data/tidb-deploy/tikv-20160"
    data_dir: "/data/tidb-data/tikv-20160"
    log_dir: "/data/tidb-deploy/tikv-20160/log"
grafana_servers:
  - host: 1x2.2x.2x7.143
    deploy_dir: "/data/tidb-deploy/grafana-3000"
alertmanager_servers:
  - host: 1x2.2x.2x7.143
    deploy_dir: "/data/tidb-deploy/alertmanager-9093"
    data_dir: "/data/tidb-data/alertmanager-9093"
    log_dir: "/data/tidb-deploy/alertmanager-9093/log"
monitoring_servers:
  - host: 1x2.2x.2x7.143
    deploy_dir: "/data/tidb-deploy/prometheus-8249"
    data_dir: "/data/tidb-data/prometheus-8249"
    log_dir: "/data/tidb-deploy/prometheus-8249/log"

根据配置文件做部署环境检查
tiup cluster check ./topology_test.yaml --user root

如出现报错

检查完成后可能会出现很多修复项

#自动修复
tiup cluster check ./topology_test.yaml --apply

再次检查部署环境
tiup cluster check ./topology_test.yaml --user root
#(没有numactl可以忽略):Fail numactl not usable, bash:numactl:command not found

部署tidb集群执行命令如下:
tiup cluster deploy tidb-public-dev-0001 v7.5.2 ./topology_test.yaml

启动tidb集群执行命令
tiup cluster start tidb-public-dev-0001 ##这里我们不加–init选项,这样就不会生成一个随机密码

查看集群状态
#查看集群名称
tiup cluster list
#查看集群状态信息
tiup cluster display 集群名

在这里插入图片描述
Dashboard登陆界面
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到