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

2023年 10月 13日 43.2k 0

作者:尹裕皓

原文来源: tidb.net/blog/c45d84…

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

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

准备工作

系统要求:

请提前确认系统版本是否符合要求
具体配置要求详见官方文档: www.bookstack.cn/read/tidb-5…

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 数据盘为例,具体操作步骤如下:

  • 查看现有数据盘
  • fdisk -l
    
    Disk /dev/nvme0n1: 1000 GB
    
  • 创建分区
  • parted -s -a optimal /dev/nvme0n1 mklabel gpt -- mkpart primary ext4 1 -1
    
  • 格式化文件系统
  • mkfs.ext4 /dev/nvme0n1p1
    
  • 查看数据盘分区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
    
  • 编辑 /etc/fstab 文件,添加 nodelalloc 挂载参数
  • vi /etc/fstab
    
    UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 2
    
  • 挂载数据盘
  • mkdir /data1 && mount -a
    
  • 执行以下命令,如果文件系统为 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
    

    关闭防火墙

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

    检查及安装NTP服务

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

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

  • 执行以下命令,如果输出 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
    
  • 执行 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 频率固定在其支持的最高运行频率上,不进行动态调节,可获取最佳的性能。

  • 执行 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
    
  • 获取磁盘唯一标识ID_SERIAL

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

    • 执行命令:
  • udevadm info --name=/dev/sdb | grep ID_SERIAL
    
    - 得到下方结果:
    
    E: ID_SERIAL=36d0946606d79f90025f3e09a0c1f9e81
    
  • 创建新的 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 策略基础上添加操作系统优化配置
    
  • 应用新的 tuned 策略
  •  tuned-adm profile balanced-tidb-optimal
    
  • 执行以下命令验证透明大页的状态
  •  cat /sys/kernel/mm/transparent_hugepage/enabled
    
    结果应为:always madvise [never]
    
  • 执行以下命令验证数据目录所在磁盘的 I/O 调度器
  • 磁盘也可能是vd[bc],需自行用 fdisk -ls 确认

     cat /sys/block/sd[bc]/queue/scheduler
    
    结果应为: 
     [noop] deadline cfq
     [noop] deadline cfq
    
  • 执行以下命令查看 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.
    
  • 执行以下命令修改 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
    
  • 执行以下命令配置用户的 limits.conf 文件
  • cat >/etc/security/limits.conf
    tidb           soft    nofile          1000000
    tidb           hard    nofile          1000000
    tidb           soft    stack          32768
    tidb           hard    stack          32768
    EOF
    

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

  • 以 root 用户依次登录到所有部署目标机器创建 tidb 用户并设置登录密码
  •  useradd tidb && passwd tidb
    
  • 执行以下命令,将 tidb ALL=(ALL) NOPASSWD: ALL 添加到文件末尾,即配置好 sudo 免密码
  • visudo
    
     tidb ALL=(ALL) NOPASSWD: ALL
    
  • 在中控机==切换到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
    
  • 验证,以 ==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 及集群管理操作均通过该用户完成

  • 安装tiup工具
  • su - tidb
    curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
    
  • 设置环境变量
  • 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 组件

  • 安装 TiUP cluster 组件
  •  tiup cluster
    

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

     tiup update --self && tiup update cluster
    

    预期输出 “Update successfully!”

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

    初始化集群拓扑文件

  • 使用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
    

    安装集群

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

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

    预期日志结尾输出会有 Cluster tidb-test deployed successfully 关键词,表示部署成功

  • 查看集群状态
  • 可看到目前已安装的集群信息

    tiup cluster list
    
  • 检查部署的 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
    
  • 启动tidb集群
  • tiup cluster start tidb-test
    

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

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

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

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

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

    扩容节点

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

    扩容tidb,tikv,pd,ticdc节点

  • 在确保新增节点已完成基础环境配置后,开始在中控机编写扩容拓扑文件
  • 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个节点

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

    扩容tiflash节点

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

  • 开启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和端口

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

    文件名可自定义

    填写如下内容:

    tiflash_servers:
    - host:172.24.74.71
    

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

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

    缩容节点

    缩容tidb,tikv,pd,ticdc节点

  • 确认缩容节点的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

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

    缩容tiflash节点

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

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

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

    得到id后通过id执行缩容

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

    升级TiDB集群(在线升级)

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

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

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

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

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

  • 升级tidb集群
  • 可通过 tiup list tidb 来查询可用版本

    tiup cluster upgrade tidb-test v5.1.0
    
  • 升级完成后查询集群状态
  • 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
    

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论