tidb4.0+安装部署实验流程

【是否原创】是
【首发渠道】TiDB 社区
【正文】

本文档参考官方文档和官方视频,并结合实际自己部署实验中遇到的情况整理而来
本文用于记录TiDB的部署

准备工作

系统要求:

请提前确认系统版本是否符合要求
具体配置要求详见官方文档:https://www.bookstack.cn/read/tidb-5.0-zh/hardware-and-software-requirements.md

Linux 操作系统平台 版本
Red Hat Enterprise Linux 7.3 及以上
CentOS 7.3 及以上
Oracle Enterprise Linux 7.3 及以上
Ubuntu LTS 16.04 及以上

个人测试至少3个节点
测试开发服务器至少4个节点,如需tiflash和ticdc功能建议6个节点
生产至少需要9个节点,如需tiflash和ticdc功能则至少13个节点

挂载磁盘

本步骤的前提为有额外的磁盘可以挂载。生产库和有条件的测试库需按本步骤设置,没有额外磁盘的测试机则跳过本步

使用 root 用户登录目标机器,将部署目标机器数据盘格式化成 ext4 文件系统,挂载时添加 nodelalloc 和 noatime 挂载参数。nodelalloc 是必选参数,否则 TiUP 安装时检测无法通过;noatime 是可选建议参数。

注意:
使用 lsblk 命令查看分区的设备号:对于 nvme 磁盘,生成的分区设备号一般为 nvme0n1p1;对于普通磁盘(例如 /dev/sdb),生成的的分区设备号一般为 sdb1。
如果你的数据盘已经格式化成 ext4 并挂载了磁盘,可先执行 umount /dev/nvme0n1p1 命令卸载,从编辑 /etc/fstab 文件步骤开始执行,添加挂载参数重新挂载即可。

以 /dev/nvme0n1p1 数据盘为例,具体操作步骤如下:

  1. 查看现有数据盘
fdisk -l
Disk /dev/nvme0n1: 1000 GB
  1. 创建分区
parted -s -a optimal /dev/nvme0n1 mklabel gpt -- mkpart primary ext4 1 -1
  1. 格式化文件系统
mkfs.ext4 /dev/nvme0n1p1
  1. 查看数据盘分区UUID

本例中 nvme0n1p1 的 UUID 为 c51eb23b-195c-4061-92a9-3fad812cc12f

lsblk -f
 NAME    FSTYPE LABEL UUID                                 MOUNTPOINT
 sda
 ├─sda1  ext4         237b634b-a565-477b-8371-6dff0c41f5ab /boot
 ├─sda2  swap         f414c5c0-f823-4bb1-8fdf-e531173a72ed
 └─sda3  ext4         547909c1-398d-4696-94c6-03e43e317b60 /
 sr0
 nvme0n1
 └─nvme0n1p1 ext4         c51eb23b-195c-4061-92a9-3fad812cc12f
  1. 编辑 /etc/fstab 文件,添加 nodelalloc 挂载参数
vi /etc/fstab
UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 2
  1. 挂载数据盘
mkdir /data1 && mount -a
  1. 执行以下命令,如果文件系统为 ext4,并且挂载参数中包含 nodelalloc,则表示已生效
mount -t ext4
/dev/nvme0n1p1 on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)

关闭swap

echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff -a && swapon -a
sysctl -p

关闭防火墙

  1. 关闭防火墙服务
systemctl stop firewalld.service
  1. 关闭防火墙自启动
systemctl disable firewalld.service

检查及安装NTP服务

centos7 rhel7 服务器有chronyd服务,会自动同步ntp信息,跳过本设置步骤

TiDB 是一套分布式数据库系统,需要节点间保证时间的同步,从而确保 ACID 模型的事务线性一致性

  1. 执行以下命令,如果输出 running 表示 NTP 服务正在运行:
systemctl status ntpd.service
 ntpd.service - Network Time Service
 Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
 Active: active (running) since 一 2017-12-18 13:13:19 CST; 3s ago
  1. 执行 ntpstat 命令检测是否与 NTP 服务器同步:
ntpstat
  • 如果输出 synchronised to NTP server,表示正在与 NTP 服务器正常同步:
synchronised to NTP server (85.199.214.101) at stratum 2
  time correct to within 91 ms
  polling server every 1024 s
  • 以下情况表示 NTP 服务未正常同步:
unsynchronised
  • 以下情况表示 NTP 服务未正常运行:
Unable to talk to NTP daemon. Is it running?

检查和配置操作系统优化参数

在生产系统的 TiDB 中,建议对操作系统进行如下的配置优化:

关闭透明大页(即 Transparent Huge Pages,缩写为 THP)。数据库的内存访问模式往往是稀疏的而非连续的。当高阶内存碎片化比较严重时,分配 THP 页面会出现较高的延迟。

将存储介质的 I/O 调度器设置为 noop。对于高速 SSD 存储介质,内核的 I/O 调度操作会导致性能损失。将调度器设置为 noop 后,内核不做任何操作,直接将 I/O 请求下发给硬件,以获取更好的性能。同时,noop 调度器也有较好的普适性。

为调整 CPU 频率的 cpufreq 模块选用 performance 模式。将 CPU 频率固定在其支持的最高运行频率上,不进行动态调节,可获取最佳的性能。

  1. 执行 tuned-adm list 命令查看当前操作系统的 tuned 策略。
    得到类似下方结果:
    ==Current active profile: balanced== 表示当前操作系统的 tuned 策略使用 balanced,建议在当前策略的基础上添加操作系统优化配置。
tuned-adm list
 Available profiles:
 - balanced                    - General non-specialized tuned profile
 - desktop                     - Optimize for the desktop use-case
 - hpc-compute                 - Optimize for HPC compute workloads
 - latency-performance         - Optimize for deterministic performance at the cost of increased power consumption
 - network-latency             - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance
 - network-throughput          - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks
 - powersave                   - Optimize for low power consumption
 - throughput-performance      - Broadly applicable tuning that provides excellent performance across a variety of common server workloads
 - virtual-guest               - Optimize for running inside a virtual guest
 - virtual-host                - Optimize for running KVM guests
 Current active profile: balanced
  1. 获取磁盘唯一标识ID_SERIAL

    有多个盘需执行多次,下方以sdb为例
    获取磁盘挂载信息使用fdisk -ls

    • 执行命令:
udevadm info --name=/dev/sdb | grep ID_SERIAL
- 得到下方结果:
E: ID_SERIAL=36d0946606d79f90025f3e09a0c1f9e81
  1. 创建新的 tuned 策略
    填写如下内容:
mkdir /etc/tuned/balanced-tidb-optimal/
vi /etc/tuned/balanced-tidb-optimal/tuned.conf
> 注意将ID_SERIAL值替换为你查出来的
[main]
include=balanced
[cpu]
governor=performance
[vm]
transparent_hugepages=never
[disk]
devices_udev_regex=(ID_SERIAL=36d0946606d79f90025f3e09a0c1fc035)|(ID_SERIAL=36d0946606d79f90025f3e09a0c1f9e81)
elevator=noop
> include=balanced 表示在现有的 balanced 策略基础上添加操作系统优化配置
  1. 应用新的 tuned 策略
 tuned-adm profile balanced-tidb-optimal
  1. 执行以下命令验证透明大页的状态
 cat /sys/kernel/mm/transparent_hugepage/enabled
结果应为:always madvise [never]
  1. 执行以下命令验证数据目录所在磁盘的 I/O 调度器

磁盘也可能是vd[bc],需自行用 fdisk -ls 确认

 cat /sys/block/sd[bc]/queue/scheduler
结果应为: 
 [noop] deadline cfq
 [noop] deadline cfq
  1. 执行以下命令查看 cpufreq 模块选用的节能策略
 cpupower frequency-info --policy
结果应类似:
 analyzing CPU 0:
 current policy: frequency should be within 1.20 GHz and 3.10 GHz.
               The governor "performance" may decide which speed to use within this range.
  1. 执行以下命令修改 sysctl 参数
 echo "fs.file-max = 1000000">> /etc/sysctl.conf
 echo "net.core.somaxconn = 32768">> /etc/sysctl.conf
 echo "net.ipv4.tcp_tw_recycle = 0">> /etc/sysctl.conf
 echo "net.ipv4.tcp_syncookies = 0">> /etc/sysctl.conf
 echo "vm.overcommit_memory = 1">> /etc/sysctl.conf
 echo "vm.swappiness = 0">> /etc/sysctl.conf
 sysctl -p
  1. 执行以下命令配置用户的 limits.conf 文件
cat << EOF >>/etc/security/limits.conf
tidb           soft    nofile          1000000
tidb           hard    nofile          1000000
tidb           soft    stack          32768
tidb           hard    stack          32768
EOF

手动配置 SSH 互信及 sudo 免密码

  1. 以 root 用户依次登录到所有部署目标机器创建 tidb 用户并设置登录密码
 useradd tidb && passwd tidb
  1. 执行以下命令,将 tidb ALL=(ALL) NOPASSWD: ALL 添加到文件末尾,即配置好 sudo 免密码
visudo
 tidb ALL=(ALL) NOPASSWD: ALL
  1. 在中控机==切换到tidb用户==,生成ssh-keygen并将公钥复制到其他部署节点
 su - tidb
 ssh-keygen -t rsa

10.0.1.1为其他部署节点ip,请自行替换,并依次将公钥复制到所有节点

 ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.1.1
  1. 验证,以 ==tidb== 用户登录中控机,通过 ssh 的方式登录目标机器 IP。如果不需要输入密码并登录成功,即表示 SSH 互信配置成功;如需要输入密码则表示没有配置成功,请自行排查原因
 ssh 10.0.1.1
 [tidb@10.0.1.1 ~]$

安装 numactl 工具

本段主要介绍如果安装 NUMA 工具。在生产环境中,因为硬件机器配置往往高于需求,为了更合理规划资源,会考虑单机多实例部署 TiDB 或者 TiKV。NUMA 绑核工具的使用,主要为了防止 CPU 资源的争抢,引发性能衰退。

注意:
NUMA 绑核是用来隔离 CPU 资源的一种方法,适合高配置物理机环境部署多实例使用。
通过 tiup cluster deploy 完成部署操作,就可以通过 exec 命令来进行集群级别管理工作。

  • 方法1:通过 TiUP 的 cluster 执行完 exec 命令来完成批量安装(推荐)

本方法需要先安装tiup组件,如使用本方法,请先跳转到下一步,安装完tiup后再回来执行本步

将 tidb-test 集群所有目标主机通过 sudo 权限执行安装命令

 tiup cluster exec tidb-test --sudo --command "yum -y install numactl"

推荐使用第一种方法,不需要手动到各节点,只需要在中控机一条命令即可

  • 方法2:登录到各节点进行安装(以 CentOS Linux release 7.7.1908 (Core) 为例)
 sudo yum -y install numactl

部署TiUP组件

使用普通用户登录中控机,以 tidb 用户为例,后续安装 TiUP 及集群管理操作均通过该用户完成

  1. 安装tiup工具
su - tidb
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
  1. 设置环境变量

tiup工具安装好以后会有如下提示:

/home/tidb/.bash_profile has been modified to add tiup to PATH
open a new terminal or source /home/tidb/.bash_profile to use it

根据提示source生效环境变量即可:

source /home/tidb/.bash_profile

确认 TiUP 工具是否安装:

which tiup
得到如下结果即为安装成功:
~/.tiup/bin/tiup

部署playground单机测试环境

本步骤为单机,仅用于了解tidb的架构和简单使用
安装开发|测试|生产环境请跳过本步

执行安装命令:

tiup playground

得到CLUSTER START SUCCESSFULLY的结果即表示安装成功,示例如下:

Waiting for tiflash instances ready
127.0.0.1:3930 ... Done
CLUSTER START SUCCESSFULLY, Enjoy it ^-^
To connect TiDB: mysql --comments --host 127.0.0.1 --port 4000 -u root -p (no password)
To view the dashboard: http://127.0.0.1:2379/dashboard
PD client endpoints: [127.0.0.1:2379]
To view the Prometheus: http://127.0.0.1:9090
To view the Grafana: http://127.0.0.1:3000
tiflash quit: signal: killed
Logging debug to /home/tidb/.tiup/data/SqQnv40/tiflash-0/log/tiflash.log
Logging errors to /home/tidb/.tiup/data/SqQnv40/tiflash-0/log/tiflash_error.log

此时需保留本窗口(不能退出),另开新窗口连接tidb实例,可按照安装完成后的提示实验所有功能

实验结束后结束掉部署窗口进程即可(control + c)

登录方式:

默认无密码

tiup client
  or
mysql --host 127.0.0.1 --port 4000 -u root -p

部署TiDB集群

本步骤均在中控机的tidb账号下操作

安装 TiUP cluster 组件

  1. 安装 TiUP cluster 组件
 tiup cluster

安装完成后会得到tiup cluster的相关命令提示
2. 如果已经安装,则更新 TiUP cluster 组件至最新版本:

 tiup update --self && tiup update cluster

预期输出 “Update successfully!”

如需查看当前cluster版本,则执行如下语句
tiup --binary cluster

初始化集群拓扑文件

  1. 使用tiup工具生成拓扑文件
tiup cluster template > topology.yaml

注意:
混合部署场景也可以使用 tiup cluster template --full > topology.yaml 生成的建议拓扑模板,跨机房部署场景可以使用 tiup cluster template --multi-dc > topology.yaml 生成的建议拓扑模板。

文件生成以后编辑对应节点信息即可,本步骤生成的为一个模板文档,建议直接复制第2步的信息来新建文档。
2. 编辑拓扑文档

vi topology.yaml

填入以下内容

各节点信息请根据实际情况调整
本拓扑不包含tiflsh和ticdc,如需要请自行添加节点

global: 
 user: "tidb" 
 ssh_port: 22 
 deploy_dir: "/tidb/tidb-deploy" 
 data_dir: "/tidb/tidb-data"
pd_servers: 
 - host: 172.24.74.67 
 - host: 172.24.74.68 
 - host: 172.24.74.69
tidb_servers: 
 - host: 172.24.74.67 
 - host: 172.24.74.68 
 - host: 172.24.74.69
tikv_servers: 
 - host: 172.24.74.67 
 - host: 172.24.74.68
 - host: 172.24.74.69 
monitoring_servers: 
 - host: 172.24.74.67
grafana_servers: 
 - host: 172.24.74.68
alertmanager_servers: 
 - host: 172.24.74.68

检查和自动修复集群存在的潜在风险

请保证所有Fail项目修复后再进行下一步操作

tiup cluster check ./topology.yaml --user tidb
tiup cluster check ./topology.yaml --apply --user tidb

安装集群

  1. 执行安装命令

通过 TiUP cluster 部署的集群名称为 tidb-test
可以通过执行 tiup list tidb 来查看TiUP支持的最新可用版本

tiup cluster deploy tidb-test v5.0.0 ./topology.yaml --user tidb

预期日志结尾输出会有 Clustertidb-testdeployed successfully 关键词,表示部署成功

  1. 查看集群状态

可看到目前已安装的集群信息

tiup cluster list
  1. 检查部署的 TiDB 集群情况
tiup cluster display tidb-test

确认所有节点,目前的状态应该都是Down或者N/A,类似下方信息

ID                  Role          Host          Ports        OS/Arch       Status  Data Dir                           Deploy Dir
--                  ----          ----          -----        -------       ------  --------                           ----------
172.24.74.68:9093   alertmanager  172.24.74.68  9093/9094    linux/x86_64  Down    /tidb/tidb-data/alertmanager-9093  /tidb/tidb-deploy/alertmanager-9093
172.24.74.68:3000   grafana       172.24.74.68  3000         linux/x86_64  Down    -                                  /tidb/tidb-deploy/grafana-3000
172.24.74.67:2379   pd            172.24.74.67  2379/2380    linux/x86_64  Down    /tidb/tidb-data/pd-2379            /tidb/tidb-deploy/pd-2379
172.24.74.68:2379   pd            172.24.74.68  2379/2380    linux/x86_64  Down    /tidb/tidb-data/pd-2379            /tidb/tidb-deploy/pd-2379
172.24.74.69:2379   pd            172.24.74.69  2379/2380    linux/x86_64  Down    /tidb/tidb-data/pd-2379            /tidb/tidb-deploy/pd-2379
172.24.74.67:9090   prometheus    172.24.74.67  9090         linux/x86_64  Down    /tidb/tidb-data/prometheus-9090    /tidb/tidb-deploy/prometheus-9090
172.24.74.67:4000   tidb          172.24.74.67  4000/10080   linux/x86_64  Down    -                                  /tidb/tidb-deploy/tidb-4000
172.24.74.68:4000   tidb          172.24.74.68  4000/10080   linux/x86_64  Down    -                                  /tidb/tidb-deploy/tidb-4000
172.24.74.69:4000   tidb          172.24.74.69  4000/10080   linux/x86_64  Down    -                                  /tidb/tidb-deploy/tidb-4000
172.24.74.67:20160  tikv          172.24.74.67  20160/20180  linux/x86_64  N/A     /tidb/tidb-data/tikv-20160         /tidb/tidb-deploy/tikv-20160
172.24.74.68:20160  tikv          172.24.74.68  20160/20180  linux/x86_64  N/A     /tidb/tidb-data/tikv-20160         /tidb/tidb-deploy/tikv-20160
172.24.74.69:20160  tikv          172.24.74.69  20160/20180  linux/x86_64  N/A     /tidb/tidb-data/tikv-20160         /tidb/tidb-deploy/tikv-20160
Total nodes: 12
  1. 启动tidb集群
tiup cluster start tidb-test

预期结果输出 Started cluster tidb-test successfully 标志启动成功

  1. 再次检查tidb集群状态
tiup cluster display tidb-test

预期结果应所有节点都为Up状态

  1. 到本步骤即tidb集群已安装完成,现在可通过任意tidb-server节点连接数据库开始使用,如:
mysql -uroot -p -h172.24.74.67 -P4000

默认无密码,需首次进入后设置

扩容节点

扩容前请按照【准备工作】调试好新节点的各项配置

扩容tidb,tikv,pd,ticdc节点

  1. 在确保新增节点已完成基础环境配置后,开始在中控机编写扩容拓扑文件
vi scale-out.yaml

文件名可自定义

填写如下内容:(这里包含了所有信息,需要新增哪种节点复制哪种节点信息即可)

# tidb
tidb_servers:
  - host: 172.24.74.71
    ssh_port: 22
    port: 4000
    status_port: 10080
    deploy_dir: /data/deploy/install/deploy/tidb-4000
    log_dir: /data/deploy/install/log/tidb-4000

# tikv
tikv_servers:
- host:172.24.74.71
    ssh_port:22
    port:20160
    status_port:20180
    deploy_dir:/data/deploy/install/deploy/tikv-20160
    data_dir:/data/deploy/install/data/tikv-20160
    log_dir:/data/deploy/install/log/tikv-20160
    
# pd
pd_servers:
- host:172.24.74.71
    ssh_port:22
    name: pd-1
    client_port:2379
    peer_port:2380
    deploy_dir:/data/deploy/install/deploy/pd-2379
    data_dir:/data/deploy/install/data/pd-2379
    log_dir:/data/deploy/install/log/pd-2379

#ticdc
cdc_servers:
- host:172.24.74.71
- host:172.24.74.69

实验得知:仅host为必填项,其余参数均可继承全局参数
ticdc节点在测试环境可1个节点,在生产环境应至少2个节点

  1. 执行扩容命令
tiup cluster scale-out tidb-test scale-out.yaml
  1. 扩容成功后查看集群状态,确保集群状态正常
tiup cluster display tidb-test

扩容tiflash节点

tiflash仅支持tidb5.0+,如版本不匹配请先升级tidb集群

  1. 开启pd的Placement Rules功能(如已开启请忽略)
tiup ctl pd -u 172.24.74.71:2379 config set enable-placement-rules true

172.24.74.71:2379是任意pd节点的ip和端口

  1. 在确保新增节点已完成基础环境配置后,开始在中控机编写扩容拓扑文件
vi scale-out.yaml

文件名可自定义

填写如下内容:

tiflash_servers:
- host:172.24.74.71

在测试环境可1个节点,在生产环境应至少2个节点

  1. 执行扩容命令
tiup cluster scale-out tidb-test scale-out.yaml
  1. 扩容成功后查看集群状态,确保集群状态正常
tiup cluster display tidb-test

缩容节点

缩容tidb,tikv,pd,ticdc节点

  1. 确认缩容节点的id
tiup cluster display tidb-test

得到集群信息

Starting component `cluster`: /home/tidb/.tiup/components/cluster/v1.7.0/tiup-cluster display tidb-test
Cluster type:       tidb
Cluster name:       tidb-test
Cluster version:    v5.0.0
Deploy user:        tidb
SSH type:           builtin
Dashboard URL:      http://172.24.74.68:2379/dashboard
ID                  Role          Host          Ports                            OS/Arch       Status        Data Dir                           Deploy Dir
--                  ----          ----          -----                            -------       ------        --------                           ----------
172.24.74.68:9093   alertmanager  172.24.74.68  9093/9094                        linux/x86_64  Up            /tidb/tidb-data/alertmanager-9093  /tidb/tidb-deploy/alertmanager-9093
172.24.74.71:8300   cdc           172.24.74.71  8300                             linux/x86_64  Up            /tidb/tidb-data/cdc-8300           /tidb/tidb-deploy/cdc-8300
172.24.74.68:3000   grafana       172.24.74.68  3000                             linux/x86_64  Up            -                                  /tidb/tidb-deploy/grafana-3000
172.24.74.67:2379   pd            172.24.74.67  2379/2380                        linux/x86_64  Up|L          /tidb/tidb-data/pd-2379            /tidb/tidb-deploy/pd-2379
172.24.74.68:2379   pd            172.24.74.68  2379/2380                        linux/x86_64  Up|UI         /tidb/tidb-data/pd-2379            /tidb/tidb-deploy/pd-2379
172.24.74.69:2379   pd            172.24.74.69  2379/2380                        linux/x86_64  Up            /tidb/tidb-data/pd-2379            /tidb/tidb-deploy/pd-2379
172.24.74.71:2379   pd            172.24.74.71  2379/2380                        linux/x86_64  Up            /tidb/tidb-data/pd-2379            /tidb/tidb-deploy/pd-2379
172.24.74.67:9090   prometheus    172.24.74.67  9090                             linux/x86_64  Up            /tidb/tidb-data/prometheus-9090    /tidb/tidb-deploy/prometheus-9090
172.24.74.67:4000   tidb          172.24.74.67  4000/10080                       linux/x86_64  Up            -                                  /tidb/tidb-deploy/tidb-4000
172.24.74.68:4000   tidb          172.24.74.68  4000/10080                       linux/x86_64  Up            -                                  /tidb/tidb-deploy/tidb-4000
172.24.74.69:4000   tidb          172.24.74.69  4000/10080                       linux/x86_64  Up            -                                  /tidb/tidb-deploy/tidb-4000
172.24.74.71:4000   tidb          172.24.74.71  4000/10080                       linux/x86_64  Up            -                                  /tidb/tidb-deploy/tidb-4000
172.24.74.71:9000   tiflash       172.24.74.71  9000/8123/3930/20170/20292/8234  linux/x86_64  Down          /tidb/tidb-data/tiflash-9000       /tidb/tidb-deploy/tiflash-9000
172.24.74.67:20160  tikv          172.24.74.67  20160/20180                      linux/x86_64  Up            /tidb/tidb-data/tikv-20160         /tidb/tidb-deploy/tikv-20160
172.24.74.68:20160  tikv          172.24.74.68  20160/20180                      linux/x86_64  Up            /tidb/tidb-data/tikv-20160         /tidb/tidb-deploy/tikv-20160
172.24.74.69:20160  tikv          172.24.74.69  20160/20180                      linux/x86_64  Up            /tidb/tidb-data/tikv-20160         /tidb/tidb-deploy/tikv-20160
172.24.74.71:20160  tikv          172.24.74.71  20160/20180                      linux/x86_64  Disconnected  /tidb/tidb-data/tikv-20160         /tidb/tidb-deploy/tikv-20160
Total nodes: 17

例如本次要缩容ticdc节点,获取到的id就是 172.24.74.71:8300

  1. 执行缩容命令
tiup cluster scale-in tidb-test --node 172.24.74.71:8300
  1. 缩容完成后检查集群状态
tiup cluster display tidb-test

缩容tiflash节点

  1. 进入tidb客户端,删除tiflash的副本(副本数需小于剩余节点数)
alter table test.yyh set tiflash replica 0;

tiflash的同步需要手动指定,所以大部分情况只会同步需要的部分表,同步方法详见tiflash的部署
本次以test.yyh为例

  1. 查看tiflash副本删除进度,确认所有副本都删除成功(无信息即为全部成功)
SELECT * FROM information_schema.tiflash_replica WHERE TABLE_SCHEMA ='test'and TABLE_NAME ='yyh'
  1. 所有副本删除完成后,退回操作系统,执行缩容命令
 tiup cluster display tidb-test

得到id后通过id执行缩容

 tiup cluster scale-in tidb-test --node 172.24.74.69:9000
  1. 最后再查看集群状态,确保状态正常
tiup cluster display tidb-test

升级TiDB集群(在线升级)

注意:
升级后版本无法回退,请慎重升级!
注意:
升级过程会对集群性能造成影响,请在最闲时操作!
注意:
在升级的过程中不要执行 DDL 请求,否则可能会出现行为未定义的问题。

  1. 升级tiup
 tiup update --self
 tiup --version
  1. 升级tiup cluster
 tiup update cluster
 tiup cluster --version
  1. 检查配置文件是否符合新版本要求
tiup cluster edit-config tidb-test

没有改过默认参数则不需要调整,可跳过本步骤
如4.0升级到5.0,有些自己设置的参数可能会有部分参数不支持新版本,详见官方文档

  1. 检查region状态,确保所有状态正常
tiup cluster check tidb-test --cluster

如果全部正常将得到All regions are healthy.的结果
如有问题请先修复后再进行下一步操作

  1. 升级tidb集群

可通过tiup list tidb来查询可用版本

tiup cluster upgrade tidb-test v5.1.0
  1. 升级完成后查询集群状态
tiup cluster display tidb-test

清理TiDB集群(危险)

本步骤为高风险操作,需慎重
已开始运行的生产环境严禁使用

  • 清理数据
tiup cluster clean tidb-tet --data
  • 清理日志
tiup cluster clean tidb-tet --log
  • 全部清理
tiup cluster clean tidb-tet --all

销毁TiDB集群(危险)

本步骤为高风险操作,需慎重
已开始运行的生产环境严禁使用

tiup cluster destroy tidb-test