TiDB集群安装(TiUP方式)-保姆级教程


TiDB集群安装(TiUP)

前言:所有的操作都在一台服务器(也就是主服务器)上操作,tidb会根据配置自动安装到其他服务器中
注1:删除linux用户:sudo deluser test001
注2:查看linux用户列表:cut -d: -f1 /etc/passwd
注3:查看linux用户列表并排序:cut -d: -f1 /etc/passwd | sort

一、创建用户(这一步可以不用做,直接用root也可以的)

注:创建用户的这个小板块中,命令中的“tidb”是用户名

1.1 centos创建用户并设置密码(会自动创建家目录)

useradd tidb &&passwd tidb
密码:tidb@dtt2024
给用户赋值权限:sudo chown tidb:tidb /home/tidb/

1.2 ubuntu创建用户并设置密码(必须加上-m,不然不会自动创建家目录,手动创建的家目录是没有bash开头的文件的)

创建新用户并设置密码:useradd -m tidb && passwd tidb
密码:tidb@dtt2024
授权:sudo chown tidb:tidb /home/tidb/
授权:sudo chmod 750 /home/tidb/
授权:sudo chmod 644 /home/tidb/.bashrc

在这里插入图片描述

确保新用户有一个正确的默认shell。通常,新用户会被赋予/bin/bash作为默认shell。你可以使用以下命令检查或更改默认shell(说人话就是切换用户只显示一个$符号,并且什么命令都使用不了,ll以及包括删除(Backspace)也使用不了):
在这里插入图片描述
使用root用户执行这行命令即可:sudo chsh -s /bin/bash tidb
在这里插入图片描述
切换用户:su - tidb

二、开始安装TiDB(以centos为例)

2.1 下载安装:

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

在这里插入图片描述
安装成功后,执行一下框选的:
注:(不同系统出现的路径不同,例如ubuntu出现的是source /home/tidb/.bashrc)

source /home/tidb/.bash_profile

2.2 查看环境安装目录:

which tiup

2.3 安装cluster:

tiup cluster

2.4 执行升级:

tiup update --self && tiup update cluster

2.5 编辑yaml文件(topo.yaml)

global:
  user: "tidb"
  ssh_port: 22
  deploy_dir: "/data/tidb/tidb-deploy"
  data_dir: "/data/tidb/tidb-data"

monitored:
  node_exporter_port: 29334
  blackbox_exporter_port: 29345


pd_servers:
  - host: 192.168.103.13
    client_port: 14279
    peer_port: 14289

  - host: 192.168.103.12
    client_port: 14279
    peer_port: 14289

  - host: 192.168.103.11
    client_port: 14279
    peer_port: 14289

tidb_servers:
  - host: 192.168.103.13
    port: 4643
    status_port: 14583

  - host: 192.168.103.12
    port: 4643
    status_port: 14583

  - host: 192.168.103.11
    port: 4643
    status_port: 14583

# 注:主机资源充足的话,tikv尽量配置到其他服务器上,这一块损耗资源大
tikv_servers:
  - host: 192.168.103.13
    port: 43641
    status_port: 43644

  - host: 192.168.103.12
    port: 43641
    status_port: 43644

  - host: 192.168.103.11
    port: 43641
    status_port: 43644

# (非必要,按需引入,用于大批量查询数据)单独一台服务器资源,列式存储,拥有借助 ClickHouse 高效实现的协处理器层
tiflash_servers:
  - host: 192.168.103.14
    tcp_port: 9867
    http_port: 28124
    flash_service_port: 23934
    flash_proxy_port: 22173
    flash_proxy_status_port: 22296
    metrics_port: 28234
    
monitoring_servers:
  - host: 192.168.103.11
    port: 19597

grafana_servers:
  - host: 192.168.103.11
    port: 13545

alertmanager_servers:
  - host: 192.168.103.11
    web_port: 9794
    cluster_port: 9795 

2.6 将配置好的topo.yaml文件放到tidb安装目录中,我的安装目录在/home/tidb中,所以我将配置文件放到了这个目录里

2.7 修改环境的出处和权限(如果不是root用户操作的话这里需要用root账户处理)

chown tidb:tidb /home/tidb/topo.yaml

2.8 安装:(尽量安装最新版本)

tiup cluster deploy tidb-ryl v8.1.0 topo.yaml --user root -p

在这里插入图片描述

2.9 启动集群:

tiup cluster start tidb-ryl --init

注:如果启动报以下错误,将防火墙关闭或者开启配置文件里相应的端口即可
在这里插入图片描述
出现以下信息即安装成功(安装成功后会生成一个密码,要保存好,关闭窗口后就找不到了):
在这里插入图片描述

2.10 常用操作

# 清除集群信息(不能乱操作,因为清除后启动的集群就是一个新集群了):
tiup clean --all

# 查看集群列表:
tiup cluster list

# 查看集群状态:
tiup cluster display tidb-ryl

2.11 更新TiDB版本:

2.11.1 查看版本(提示升级的话就升级):

tiup cluster --version

2.11.2 检查当前集群的健康状况(测试环境有一些操作系统内核参数配置不符合推荐配置,可以忽略,生产环境最好改一下 ):

tiup cluster check tidb-ryl --cluster

2.11.3 检查当前集群的 DDL 和 Backup 情况
在这里插入图片描述
mysql> show backups; Empty set (0.01 sec)

2.11.4 升级TiDB:

 tiup cluster upgrade tidb-ryl v8.1.0

在这里插入图片描述

三、重启tidb集群

tiup cluster restart tidb-ryl

重启失败后,继续重启,见官网链接:
https://docs.pingcap.com/zh/tidb/stable/tiup-component-cluster-replay

注意:如果启动或者重启过程中出现端口连接超时,那一定就是端口没有开放,一定要关闭防火墙,或者是开放对应的端口即可(子服务的服务器重启后,只要防火墙是关闭的或者对应的端口是打开的,那么就会自动启动的)
1、关闭防火墙:sudo systemctl stop firewalld
2、查看防火墙启动状态:sudo firewall-cmd --state

四、负载均衡

4.1 安装haproxy

4.1.1、centos为例:

安装haproxy:

sudo yum install epel-release
sudo yum install haproxy

验证haproxy是否安装成功:

which haproxy

查看haproxy版本:

haproxy -v

开机自启动:

sudo systemctl enable haproxy
4.1.2、ubuntu为例:

查看haproxy最新版本:

apt-cache policy haproxy

安装haproxy:

sudo apt update
sudo apt install haproxy=2.0.33-0ubuntu0.1

验证haproxy是否安装成功:

which haproxy

查看haproxy版本:

haproxy -v

开机自启动:

sudo systemctl enable haproxy

4.2 配置haproxy.cfg

vim /etc/haproxy/haproxy.cfg

haproxy.cfg配置文件

global                                     # 全局配置。
   log         127.0.0.1 local2            # 定义全局的 syslog 服务器,最多可以定义两个。
   chroot      /var/lib/haproxy            # 更改当前目录并为启动进程设置超级用户权限,从而提高安全性。
   pidfile     /var/run/haproxy.pid        # 将 HAProxy 进程的 PID 写入 pidfile。
   maxconn     4096                        # 单个 HAProxy 进程可接受的最大并发连接数,等价于命令行参数 "-n"。
#   nbthread    8                          # 最大线程数。线程数的上限与 CPU 数量相同。
   user        haproxy                     # 同 UID 参数。
   group       haproxy                     # 同 GID 参数,建议使用专用用户组。
   daemon                                  # 让 HAProxy 以守护进程的方式工作于后台,等同于命令行参数“-D”的功能。当然,也可以在命令行中用“-db”参数将其禁用。
   stats socket /var/lib/haproxy/stats     # 统计信息保存位置。

defaults                                   # 默认配置。
   log global                              # 日志继承全局配置段的设置。
   retries 2                               # 向上游服务器尝试连接的最大次数,超过此值便认为后端服务器不可用。
   timeout connect  2s                     # HAProxy 与后端服务器连接超时时间。如果在同一个局域网内,可设置成较短的时间。
   timeout client 30000s                   # 客户端与 HAProxy 连接后,数据传输完毕,即非活动连接的超时时间。
   timeout server 30000s                   # 服务器端非活动连接的超时时间。

listen admin_stats                         # frontend 和 backend 的组合体,此监控组的名称可按需进行自定义。
   bind 0.0.0.0:8080                       # 监听端口。
   mode http                               # 监控运行的模式,此处为 `http` 模式。
   option httplog                          # 开始启用记录 HTTP 请求的日志功能。
   maxconn 10                              # 最大并发连接数。
   stats refresh 30s                       # 每隔 30 秒自动刷新监控页面。
   stats uri /haproxy                      # 监控页面的 URL。
   stats realm HAProxy                     # 监控页面的提示信息。
   stats auth admin:pingcap123             # 监控页面的用户和密码,可设置多个用户名。
   stats hide-version                      # 隐藏监控页面上的 HAProxy 版本信息。
   stats  admin if TRUE                    # 手工启用或禁用后端服务器(HAProxy 1.4.9 及之后版本开始支持)。

listen tidb-cluster                        # 配置 database 负载均衡。
   bind 0.0.0.0:3390                       # 浮动 IP 和 监听端口。
   mode tcp                                # HAProxy 要使用第 4 层的传输层。
   balance leastconn                       # 连接数最少的服务器优先接收连接。`leastconn` 建议用于长会话服务,例如 LDAP、SQL、TSE 等,而不是短会话协议,如 HTTP。该算法是动态的,对于启动慢的服务器,服务器权重会在运行中作调整。
   server tidb-1 192.168.103.11:4643 check inter 2000 rise 2 fall 3       # 检测 4000 端口,检测频率为每 2000 毫秒一次。如果 2 次检测为成功,则认为服务器可用;如果 3 次检测为失败,则认为服务器不可用。
   server tidb-2 192.168.103.12:4643 check inter 2000 rise 2 fall 3
   server tidb-3 192.168.103.13:4643 check inter 2000 rise 2 fall 3

具体配置案例见tidb官网案例:
https://docs.pingcap.com/zh/tidb/stable/haproxy-best-practices#haproxy-%E5%9C%A8-tidb-%E4%B8%AD%E7%9A%84%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5

4.3 启动haproxy

haproxy -f /etc/haproxy/haproxy.cfg

4.4 查看haproxy启动状态

ps -ef | grep haproxy

在这里插入图片描述

4.5 测试连接

在这里插入图片描述

五、拓展

5.1、使用 TiUP 在原有 TiDB 集群上新增或扩容 TiCDC 组件(在创建启动集群前忘记加这个组件时,后续的扩容方式)

扩容的方式与部署 TiCDC 集群的方式类似,推荐使用 TiUP 工具完成。

编写一个名为 scale-out.yml 的配置文件,包含需要扩容的节点的配置信息。下面是一个示例:

cdc_servers:
  - host: 192.168.103.13
    gc-ttl: 86400
    data_dir: /data/tidb/tidb-data/cdc-8300
  - host: 192.168.103.12
    gc-ttl: 86400
    data_dir: /data/tidb/tidb-data/cdc-8300
  - host: 192.168.103.11
    gc-ttl: 86400
    data_dir: /data/tidb/tidb-data/cdc-8300

在 TiUP 中控机上执行类似下面的命令进行扩容:

tiup cluster scale-out <cluster-name> scale-out.yml -uroot -p

出现以下情况,说明扩容成功
在这里插入图片描述

5.2、使用 TiUP 在原有 TiDB 集群上移除或缩容 TiCDC 组件

推荐使用 TiUP 完成对 TiCDC 集群节点的缩容。使用类似下面的命令完成缩容(如果无效,就在后面加空格,然后补充上-uroot -p):

tiup cluster scale-in <cluster-name> --node 192.168.103.11:8300
  • 25
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
TiDB集群环境的部署可以通过使用TiUP来完成。TiUPTiDB 4.0版本引入的集群运维工具,它提供了集群管理组件TiUP cluster,可以用于管理TiDB集群的部署、启动、关闭、销毁、弹性扩缩容、升等工作。通过执行TiUP命令,可以输出当前通过TiUP cluster管理的所有集群信息,包括集群名称、部署用户、版本、密钥信息等。 具体的部署步骤如下: 1. 安装TiUP组件:执行TiUP命令进行组件安装。 2. 创建集群配置文件:使用TiUP cluster命令创建一个新的集群配置文件。 3. 配置集群参数:根据需求修改集群配置文件中的参数,例如副本数、节点数量等。 4. 部署TiDB集群:执行TiUP cluster命令进行集群的部署。 5. 检查部署情况:执行TiUP cluster命令检查部署的TiDB集群情况。 通过以上步骤,可以完成TiDB集群环境的部署和配置。使用TiUP作为集群管理工具,可以方便地进行TiDB生态下各个组件的管理和运维工作,极大地降低了管理难度。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [使用 TiUP 部署 TiDB 集群](https://blog.csdn.net/weixin_42241611/article/details/125518329)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [TIDB集群部署](https://blog.csdn.net/qq_21040559/article/details/127716535)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

八月林城

如果受益了,请作者喝杯咖啡哟

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值