TiDB TiUP 方式部署集群

一. 软硬件环境检查
1. 系统版本要求
Linux 操作系统平台
版本
Red Hat Enterprise Linux
7.3 及以上
CentOS
7.3 及以上
Oracle Enterprise Linux
7.3 及以上
Ubuntu LTS
16.04 及以上
2.在TiKV部署机器上 挂载数据盘 (如果没有直接跳过)
1. 查看 数据盘
fdisk -l
2. 创建分区
parted -s -a optimal /dev/nvme0n1 mklabel gpt -- mkpart primary ext4 1 -1
3. 格式化
mkfs.ext4 /dev/nvme0n1p1
4. 查看分区UUID
lsblk -f
nvme0n1
└─nvme0n1p1 ext4         c51eb23b-195c-4061-92a9-3fad812cc12f
5. 编辑/etc/fstab 文件 添加 nodelalloc 挂载参数
vi /etc/fstab
 
UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 2
6. 挂载数据盘
mkdir /data1 && \
mount -a
7. 检查 是否生效 
mount -t ext4
# 参数中包含nodelalloc 表示生效
/dev/nvme0n1p1 on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)
3. 关闭swap 分区
```bash echo "vm.swappiness = 0">> /etc/sysctl.conf swapoff -a && swapon -a sysctl -p ```
4. 关闭 目标机器防火墙
1. 检测方防火墙状态 (CentOS 7.6系统)
sudo firewall-cmd --state
sudo systemctl status firewalld.service
 
2. 关闭防火墙
sudo systemctl stop firewalld.service
 
3. 关闭防火墙自启动服务
sudo systemctl disable firewalld.service
 
4. 检查防火墙状态
sudo systemctl status firewalld.service
5. 安装ntp 服务
1.检查 ntp 服务状态
sudo systemctl status ntpd.service
# runing 表示运行
ntpstat
# synchronised to NTP server 表示正常同步
 
2. 如果没有运行请安装,
sudo yum install ntp ntpdate && \
sudo systemctl start ntpd.service && \
sudo systemctl enable ntpd.service
6. 手动安装SSH 互信
1. 以 root 用户登录到目标机器, 并 创建 tidb 用户
useradd tidb && \
passwd tidb
2. visudo  并在最后添加 tidb ALL=(ALL) NOPASSWD: ALL  配置sudo 免密码
visudo
tidb ALL=(ALL) NOPASSWD: ALL
3. 以 tidb 用户登录到 控制机上 执行命令 配置互信
ssh-copy-id -i ~/.ssh/id_rsa.pub 172.16.5.52
3. ssh 链接 目标机器, 并sudo 到root 测试SSH互信和sudo 免密是否生效
ssh 172.16.5.52
sudo su - tidb
7. 安装 numactl 工具 为了单机多实例 时 隔离 cpu 资源
1. 手动 链接到目标机 上进行安装
sudo yum -y install numactl
 
2. 在 安装tiup cluster 组件后 批量对目标机进行安装
tiup cluster exec tidb-test --sudo --command "yum -y install numactl"
 
二. 在控制机上安装 TiUP 组件
1. 安装TiUP 组件
curl --proto ‘=https‘ --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
2. 刷新环境变量
source .bash_profile
3. 检查 TiUP 组件是否安装成功, 安装TiUP cluster 组件 并检查 cluster组件版本信息
which tiup
 
tiup cluster
tiup --binary cluster
 
三. 编辑初始化配置文件 (这里我们使用的最小拓扑安装, 其他的也安装了, 安装过程基本一样)
1.编辑配置文件 topology.yaml (这里我们对端口和路径进行了自定义)
[tidb@CentOS76_VM ~]$ vim topology.yaml 
# # Global variables are applied to all deployments and used as the default value of
# # the deployments if a specific deployment value is missing.
global:
  user: "tidb"
  ssh_port: 22
  deploy_dir: "/tidb-deploy"
  data_dir: "/tidb-data"
 
# # Monitored variables are applied to all the machines.
monitored:
  node_exporter_port: 19100
  blackbox_exporter_port: 19115
  deploy_dir: "/tidb-deploy/test/monitored-9100"
  data_dir: "/tidb-data/test/monitored-9100"
  log_dir: "/tidb-deploy/test/monitored-9100/log"
 
# # Server configs are used to specify the runtime configuration of TiDB components.
# # All configuration items can be found in TiDB docs:
# # - TiDB: https://pingcap.com/docs/stable/reference/configuration/tidb-server/configuration-file/
# # - TiKV: https://pingcap.com/docs/stable/reference/configuration/tikv-server/configuration-file/
# # - PD: https://pingcap.com/docs/stable/reference/configuration/pd-server/configuration-file/
# # All configuration items use points to represent the hierarchy, e.g:
# #   readpool.storage.use-unified-pool
# #      
# # You can overwrite this configuration via the instance-level `config` field.
 
server_configs:
  tidb:
    log.slow-threshold: 300
    binlog.enable: false
    binlog.ignore-error: false
  tikv:
    # server.grpc-concurrency: 4
    # raftstore.apply-pool-size: 2
    # raftstore.store-pool-size: 2
    # rocksdb.max-sub-compactions: 1
    # storage.block-cache.capacity: "16GB"
    # readpool.unified.max-thread-count: 12
    readpool.storage.use-unified-pool: false
    readpool.coprocessor.use-unified-pool: true
  pd:
    schedule.leader-schedule-limit: 4
    schedule.region-schedule-limit: 2048
    schedule.replica-schedule-limit: 64
 
pd_servers:
  - host: 172.16.5.52
    ssh_port: 22
    name: "pd-1"
    client_port: 23794
    peer_port: 23804
    deploy_dir: "/tidb-deploy/test/pd-2379"
    data_dir: "/tidb-data/test/pd-2379"
    log_dir: "/tidb-deploy/test/pd-2379/log"
    # numa_node: "0,1"
    # # The following configs are used to overwrite the `server_configs.pd` values.
    # config:
    #   schedule.max-merge-region-size: 20
    #   schedule.max-merge-region-keys: 200000
  - host: 172.16.4.29
    ssh_port: 22
    name: "pd-2"
    client_port: 23794
    peer_port: 23804
    deploy_dir: "/tidb-deploy/test/pd-2379"
    data_dir: "/tidb-data/test/pd-2379"
    log_dir: "/tidb-deploy/test/pd-2379/log"
  - host: 172.16.4.56
    ssh_port: 22
    name: "pd-3"
    client_port: 23794
    peer_port: 23804
    deploy_dir: "/tidb-deploy/test/pd-2379"
    data_dir: "/tidb-data/test/pd-2379"
    log_dir: "/tidb-deploy/test/pd-2379/log"
 
tidb_servers:
  - host: 172.16.5.52
    ssh_port: 22
    port: 4004
    status_port: 10084
    deploy_dir: "/tidb-deploy/test/tidb-4000"
    log_dir: "/tidb-deploy/test/tidb-4000/log"
    # numa_node: "0,1"
    # # The following configs are used to overwrite the `server_configs.tidb` values.
    # config:
    #   log.slow-query-file: tidb-slow-overwrited.log
  - host: 172.16.4.29
    ssh_port: 22
    port: 4004
    status_port: 10084
    deploy_dir: "/tidb-deploy/test/tidb-4000"
    log_dir: "/tidb-deploy/test/tidb-4000/log"
  - host: 172.16.4.56
    ssh_port: 22
    port: 4004
    status_port: 10084
    deploy_dir: "/tidb-deploy/test/tidb-4000"
    log_dir: "/tidb-deploy/test/tidb-4000/log"
 
tikv_servers:
  - host: 172.16.4.30
    ssh_port: 22
    port: 20164
    status_port: 20184
    deploy_dir: "/tidb-deploy/test/tikv-20160"
    data_dir: "/tidb-data/test/tikv-20160"
    log_dir: "/tidb-deploy/test/tikv-20160/log"
    # numa_node: "0,1"
    # # The following configs are used to overwrite the `server_configs.tikv` values.
    # config:
    #   server.grpc-concurrency: 4
    #   server.labels: { zone: "zone1", dc: "dc1", host: "host1" }
  - host: 172.16.4.224
    ssh_port: 22
    port: 20164
    status_port: 20184
    deploy_dir: "/tidb-deploy/test/tikv-20160"
    data_dir: "/tidb-data/test/tikv-20160"
    log_dir: "/tidb-deploy/test/tikv-20160/log"
  - host: 172.16.5.208
    ssh_port: 22
    port: 20164
    status_port: 20184
    deploy_dir: "/tidb-deploy/test/tikv-20160"
    data_dir: "/tidb-data/test/tikv-20160"
    log_dir: "/tidb-deploy/test/tikv-20160/log"
 
monitoring_servers:
  - host: 172.16.5.52
    ssh_port: 22
    port: 9490
    deploy_dir: "/tidb-deploy/test/prometheus-8249"
    data_dir: "/tidb-data/test/prometheus-8249"
    log_dir: "/tidb-deploy/test/prometheus-8249/log"
 
grafana_servers:
  - host: 172.16.5.52
    port: 3004
    deploy_dir: /tidb-deploy/test/grafana-3000
 
alertmanager_servers:
  - host: 172.16.5.52
    ssh_port: 22
    web_port: 9493
    cluster_port: 9494
    deploy_dir: "/tidb-deploy/test/alertmanager-9093"
    data_dir: "/tidb-data/test/alertmanager-9093"
    log_dir: "/tidb-deploy/test/alertmanager-9093/log"

 

 
四. 部署 检查 启动 管理 集群
1. 执行部署命令
tiup cluster deploy tidb-test v4.0.0 ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
 
通过 TiUP cluster 部署的集群名称为 tidb-test
部署版本为 v4.0.0,最新版本可以通过执行 tiup list tidb 来查看 TiUP 支持的版本
初始化配置文件为 topology.yaml
--user root:通过 root 用户登录到目标主机完成集群部署,该用户需要有 ssh 到目标机器的权限,
    并且在目标机器有 sudo 权限。也可以用其他有 ssh 和 sudo 权限的用户完成部署。
[-i][-p]:非必选项,如果已经配置免密登陆目标机,则不需填写。否则选择其一即可,
    [-i] 为可登录到目标机的 root 用户(或 --user 指定的其他用户)的私钥,也可使用 [-p] 交互式输入该用户的密码
 
成功部署后会输出 Deployed cluster `tidb-test` successfully
2. 查看TiUP 管理的集群
tiup cluster list
[tidb@CentOS76_VM ~]$ tiup cluster list
Starting component `cluster`:  list
Name          User  Version  Path                                                    PrivateKey
----          ----  -------  ----                                                    ----------
tidb-binlog   tidb  v4.0.0   /home/tidb/.tiup/storage/cluster/clusters/tidb-binlog   /home/tidb/.tiup/storage/cluster/clusters/tidb-binlog/ssh/id_rsa
tidb-test     tidb  v4.0.0   /home/tidb/.tiup/storage/cluster/clusters/tidb-test     /home/tidb/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa
tidb-ticdc    tidb  v4.0.0   /home/tidb/.tiup/storage/cluster/clusters/tidb-ticdc    /home/tidb/.tiup/storage/cluster/clusters/tidb-ticdc/ssh/id_rsa
tidb-tiflash  tidb  v4.0.0   /home/tidb/.tiup/storage/cluster/clusters/tidb-tiflash  /home/tidb/.tiup/storage/cluster/clusters/tidb-tiflash/ssh/id_rsa
 
3. 查看集群 状态
tiup cluster display tidb-test
[tidb@CentOS76_VM ~]$ tiup cluster display tidb-test
Starting component `cluster`:  display tidb-test
TiDB Cluster: tidb-test
TiDB Version: v4.0.0
ID                  Role          Host          Ports        OS/Arch       Status    Data Dir                           Deploy Dir
--                  ----          ----          -----        -------       ------    --------                           ----------
172.16.5.52:9493    alertmanager  172.16.5.52   9493/9494    linux/x86_64  inactive  /tidb-data/test/alertmanager-9093  /tidb-deploy/test/alertmanager-9093
172.16.5.52:3004    grafana       172.16.5.52   3004         linux/x86_64  inactive  -                                  /tidb-deploy/test/grafana-3000
172.16.4.29:23794   pd            172.16.4.29   23794/23804  linux/x86_64  Down      /tidb-data/test/pd-2379            /tidb-deploy/test/pd-2379
172.16.4.56:23794   pd            172.16.4.56   23794/23804  linux/x86_64  Down      /tidb-data/test/pd-2379            /tidb-deploy/test/pd-2379
172.16.5.52:23794   pd            172.16.5.52   23794/23804  linux/x86_64  Down      /tidb-data/test/pd-2379            /tidb-deploy/test/pd-2379
172.16.5.52:9490    prometheus    172.16.5.52   9490         linux/x86_64  inactive  /tidb-data/test/prometheus-8249    /tidb-deploy/test/prometheus-8249
172.16.4.29:4004    tidb          172.16.4.29   4004/10084   linux/x86_64  Down      -                                  /tidb-deploy/test/tidb-4000
172.16.4.56:4004    tidb          172.16.4.56   4004/10084   linux/x86_64  Down      -                                  /tidb-deploy/test/tidb-4000
172.16.5.52:4004    tidb          172.16.5.52   4004/10084   linux/x86_64  Down      -                                  /tidb-deploy/test/tidb-4000
172.16.4.224:20164  tikv          172.16.4.224  20164/20184  linux/x86_64  Down      /tidb-data/test/tikv-20160         /tidb-deploy/test/tikv-20160
172.16.4.30:20164   tikv          172.16.4.30   20164/20184  linux/x86_64  Down      /tidb-data/test/tikv-20160         /tidb-deploy/test/tikv-20160
172.16.5.208:20164  tikv          172.16.5.208  20164/20184  linux/x86_64  Down      /tidb-data/test/tikv-20160         /tidb-deploy/test/tikv-20160
4. 启动集群
tiup cluster start tidb-test
5. 启动后, 验证集群状态
1. tiup cluster display tidb-test
# status 全部 UP 启动成功
2. 我们可以连接数据库, 看能否成功连接 
mysql -u root -h 10.0.1.4 -P 4004
 

TiDB TiUP 方式部署集群

上一篇:mssql 动态语句实现


下一篇:oracle中union和union all 使用区别