0
0
0
0
专栏/.../

TiDB集群统信操作系统离线部署

 HZL_0-0  发表于  2025-09-05

软硬件环境需求

操作系统要求

  • 在以下操作系统以及对应的 CPU 架构组合上,TiDB 可满足企业级生产质量的要求。

    • 公司87、88、89服务器就是统信操作系统 (UOS) V20,CPU架构是x86_64,满足要求。

操作系统

支持的 CPU 架构

Red Hat Enterprise Linux 8.4 及以上的 8.x 版本

  • x86_64
  • ARM 64
  • Red Hat Enterprise Linux 7.3 及以上的 7.x 版本
  • CentOS 7.3 及以上的 7.x 版本(将在 TiDB 8.5 LTS 版本结束支持)
  • x86_64
  • ARM 64

Amazon Linux 2

  • x86_64
  • ARM 64

Amazon Linux 2023

  • x86_64
  • ARM 64

Rocky Linux 9.1 及以上的版本

  • x86_64
  • ARM 64

麒麟欧拉版 V10 SP1/SP2

  • x86_64
  • ARM 64

统信操作系统 (UOS) V20

  • x86_64
  • ARM 64

openEuler 22.03 LTS SP1/SP3

  • x86_64
  • ARM 64

服务器建议配置

  • 开发及测试环境

组件

CPU

内存

本地存储

网络

实例数量(最低要求)

TiDB

8 核+

16 GB+

磁盘空间要求

千兆网卡

1(可与 PD 同机器)

PD

4 核+

8 GB+

SAS, 200 GB+

千兆网卡

1(可与 TiDB 同机器)

TiKV

8 核+

32 GB+

SSD, 200 GB+

千兆网卡

3

TiFlash

32 核+

64 GB+

SSD, 200 GB+

千兆网卡

1

TiCDC

8 核+

16 GB+

SAS, 200 GB+

千兆网卡

1

  • 生产环境

组件

CPU

内存

硬盘类型

网络

实例数量(最低要求)

TiDB

16 核+

48 GB+

SSD

万兆网卡(2 块最佳)

2

PD

8 核+

16 GB+

SSD

万兆网卡(2 块最佳)

3

TiKV

16 核+

64 GB+

SSD

万兆网卡(2 块最佳)

3

TiFlash

48 核+

128 GB+

1 or more SSDs

万兆网卡(2 块最佳)

2

TiCDC

16 核+

64 GB+

SSD

万兆网卡(2 块最佳)

2

监控

8 核+

16 GB+

SAS

千兆网卡

1

注意:

  • 生产环境中的 TiDB 和 PD 可以部署和运行在同一台服务器上,如对性能和可靠性有更高的要求,应尽可能分开部署。
  • 强烈建议分别为生产环境中的 TiDB、TiKV 和 TiFlash 配置至少 8 核的 CPU。强烈推荐使用更高的配置,以获得更好的性能。

网络要求

  • 在网络侧和主机侧开放相关端口:

组件

默认端口

说明

TiDB

4000

应用及 DBA 工具访问通信端口

TiDB

10080

TiDB 状态信息上报通信端口

TiKV

20160

TiKV 通信端口

TiKV

20180

TiKV 状态信息上报通信端口

PD

2379

提供 TiDB 和 PD 通信端口

PD

2380

PD 集群节点间通信端口

TiFlash

9000

TiFlash TCP 服务端口

TiFlash

3930

TiFlash RAFT 服务和 Coprocessor 服务端口

TiFlash

20170

TiFlash Proxy 服务端口

TiFlash

20292

Prometheus 拉取 TiFlash Proxy metrics 端口

TiFlash

8234

Prometheus 拉取 TiFlash metrics 端口

Pump

8250

Pump 通信端口

Drainer

8249

Drainer 通信端口

CDC

8300

CDC 通信接口

Monitoring

9090

Prometheus 服务通信端口

Monitoring

12020

NgMonitoring 服务通信端口

Node_exporter

9100

TiDB 集群每个节点的系统信息上报通信端口

Blackbox_exporter

9115

Blackbox_exporter 通信端口,用于 TiDB 集群端口监控

Grafana

3000

Web 监控服务对外服务和客户端(浏览器)访问端口

Alertmanager

9093

告警 web 服务端口

Alertmanager

9094

告警通信端口

磁盘空间要求

组件

磁盘空间要求

健康水位使用率

TiDB

日志盘建议最少预留 30 GB。

低于 90%

PD

数据盘和日志盘建议最少各预留 20 GB

低于 90%

TiKV

数据盘和日志盘建议最少各预留 100 GB

低于 80%

TiFlash

数据盘建议最少预留 100 GB,日志盘建议最少预留 30 GB

低于 80%

环境与系统配置

检测及关闭系统swap

  • TiDB 运行需要有足够的内存。如果想保持性能稳定,则建议永久关闭系统 swap,但可能在内存偏小时触发 OOM 问题;如果想避免此类 OOM 问题,则可只将 swap 优先级调低,但不做永久关闭。
echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff -a
sysctl -p

关闭防火墙

  • 在 TiDB 集群中,需要将节点间的访问端口打通才可以保证读写请求、数据心跳等信息的正常的传输,建议将目标节点的防火墙进行关闭。否则建议按照端口使用规则,将端口信息配置到防火墙服务的白名单中。
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

关闭 SELinux

SELinux 必须关闭或设置为 permissive 模式。

  • 临时关闭:执行setenforce 0
  • 永久关闭:如果 SELinux 未关闭,请打开 /etc/selinux/config 文件,找到以 SELINUX= 开头的行,并将其修改为 SELINUX=disabled。修改完成后,你需要重启系统,因为从 enforcingpermissive 切换到 disabled 模式只有在重启后才会生效。

检测及安装NTP服务

  • TiDB 是一套分布式数据库系统,需要节点间保证时间的同步,从而确保 ACID 模型的事务线性一致性。
# 查看ntp服务状态
sudo systemctl status chronyd.service
# 启动
systemctl start chronyd
# 开机自启动
systemctl enable chronyd

配置操作系统优化参数

  1. 一次性执行以下命令修改 sysctl 参数。
echo "fs.file-max = 1000000">> /etc/sysctl.conf
echo "net.core.somaxconn = 32768">> /etc/sysctl.conf
echo "net.ipv4.tcp_syncookies = 0">> /etc/sysctl.conf
echo "vm.overcommit_memory = 1">> /etc/sysctl.conf
echo "vm.min_free_kbytes = 1048576">> /etc/sysctl.conf
sysctl -p

不建议在内存小于 16 GiB 的系统上调大 vm.min_free_kbytes 的值,否则可能导致系统不稳定或启动失败。建议将 vm.min_free_kbytes 最小设置为 1048576 KiB(即 1 GiB)。

  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
  1. 执行以下命令查看透明大页的开启状态。
cat /sys/kernel/mm/transparent_hugepage/enabled
# [always] madvise never 表示透明大页处于启用状态,需要关闭。
# 临时关闭
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

# 永久关闭,在GRUB_CMDLINE_LINUX参数中增加:transparent_hugepage=never
vi /etc/default/grub
# 更新GRUB配置文件,重启系统才生效
grub2-mkconfig -o /boot/grub2/grub.cfg

配置SSH互信及sudo免密码

  • 通常推荐使用 TiUP 部署工具会自动配置 SSH 互信及免密登录,可忽略。
  1. root 用户依次登录到3台部署目标机器创建 tidb 用户并设置登录密码。
useradd -m -d /home/tidb tidb 
# 设置密码,和root密码一致即可
passwd tidb
visudo 
# 添加到文件末
tidb ALL=(ALL) NOPASSWD: ALL 
  1. tidb 用户登录到中控机,执行以下命令。按提示输入部署目标机器 tidb 用户密码,执行成功后即创建好 SSH 互信,如果要在中控机上部署 TiDB 组件,需要为中控机和中控机自身配置互信。

新建用户,若切换到新用户后,只显示$问题,许多命令不能用,解决如下:

  1. 切换到root用下,执行cat /etc/passwd
  2. 最后一行发现shell为/bin/sh
  3. 默认的shell为:/bin/sh ,需要把其修改为/bin/bash
su - tidb
ssh-keygen -t rsa
ssh-copy-id -i /home/tidb/.ssh/id_rsa.pub 172.23.57.88
ssh-copy-id -i /home/tidb/.ssh/id_rsa.pub 172.23.57.89
  1. tidb 用户登录中控机,通过 ssh 的方式登录目标机器 IP。如果不需要输入密码并登录成功,即表示 SSH 互信配置成功。
ssh 172.23.57.88
ssh 172.23.57.89
  1. tidb 用户登录到部署目标机器后,执行以下命令,不需要输入密码并切换到 root 用户,表示 tidb 用户 sudo 免密码配置成功。
sudo -su root

时区问题解决(坑)

问题描述:

统信系统安装TiDB时,在配置好tidb后,在进行初始化安装时tiup cluster start tidb-test --init出现报错,查看到到具体的报错日志显示出evaluation failed: unknown or incorrect time zone: Asia/Beijing的问题。

原因:

这是因为Asia/Beijing和Asia/Shanghai在同一时区,Asia/Shanghai在时区的认可度上更高,所以如果时区在东八区被设置为Asia/Beijing的情况下,会出现时区无法识别的情况。

解决方案:

在安装TiDB之前,查看时区:执行timedatectl,若时区为Asia/Beijing,则将时区改为Asia/Shanghai:sudo timedatectl set-timezone Asia/Shanghai

若因为未改时区导致在初始化安装时出现这个问题,必须卸载TiDB后重新安装。因为在安装的时候,已经把系统中的时间给安装到tidb中去了,所以必须卸载,不卸载的话,继续tiup cluster start tidb-test --init依然会报错evaluation failed: unknown or incorrect time zone: Asia/Beijing

卸载前需要先在3台服务器上执行:kill -9 9100端口的进程号

卸载命令: tiup cluster destroy <cluster-name>

TiUP离线部署TiDB集群

部署规划

因为87、88、89服务器不通外网,所以这里不采用TiUP在线方式部署,而是采用TiUP离线方式部署。

PD

172.23.57.87

TiDB

172.23.57.88

TiKV

172.23.57.87

TiKV

172.23.57.88

TiKV

172.23.57.89

prometheus

172.23.57.88

grafana

172.23.57.88

alertmanager

172.23.57.88

创建用户

  • 以普通用户身份登录中控机87。以 tidb 用户为例,后续安装 TiUP 及集群管理操作均通过该用户完成。
  • 切换到root用户,创建/tidb目录作为中控机的部署目录,创建/tidb/soft作为离线部署离线镜像包的存储目录,并对目录进行授权后,切换到tidb用户。
exit
mkdir /tidb
mkdir /tidb/soft
chown -R tidb:tidb /tidb 
chmod -R 775 /tidb
su - tidb

准备TiUP离线组件包

  • 访问TiDB社区版页面,在官方下载页面选择对应版本的 TiDB server 离线镜像包(包含 TiUP 离线组件包)。需要同时下载 TiDB-community-server 软件包和 TiDB-community-toolkit 软件包。

选择v8.1.0版本,架构选择x86,64-bit

  • 将下载的2个软件包上传到/tidb/soft目录下

部署离线环境TiUP组件

  • 执行以下命令安装 TiUP 组件:
cd /tidb/soft

tar xzvf tidb-community-server-v8.1.0-linux-amd64.tar.gz
sh tidb-community-server-v8.1.0-linux-amd64/local_install.sh
# TiUP 安装完成后会提示对应 Shell profile 文件的绝对路径。
# 在执行以下 source 命令前,需要将 ${your_shell_profile} 修改为 Shell profile 文件的实际位置。
source /home/tidb/.bash_profile

合并离线包

  • 如果是通过官方下载页面下载的离线软件包,需要将 TiDB-community-server 软件包和 TiDB-community-toolkit 软件包合并到离线镜像中。执行以下命令合并离线组件到 server 目录下。
tar xf tidb-community-toolkit-v8.1.0-linux-amd64.tar.gz
ls -ld tidb-community-server-v8.1.0-linux-amd64 tidb-community-toolkit-v8.1.0-linux-amd64
cd tidb-community-server-v8.1.0-linux-amd64/
cp -rp keys ~/.tiup/
tiup mirror merge ../tidb-community-toolkit-v8.1.0-linux-amd64

初始化集群拓扑文件

cd /tidb
vi topology.yaml

将下面配置文件的内容写入topology.yaml中

global:
  user: "tidb"
  ssh_port: 22
  deploy_dir: "/tidb/tidb-deploy"
  data_dir: "/tidb/tidb-data"
  resource_control:
    memory_limit: "4G"
server_configs:
 tidb:
   log.file.max-days: 7
 tikv:
   log.file.max-days: 7
 pd:
   log.file.max-days: 7
pd_servers:
  - host: 172.23.57.87
tidb_servers:
  - host: 172.23.57.88
tikv_servers:
  - host: 172.23.57.87
    resource_control:
        memory_limit: "10G"
  - host: 172.23.57.88
    resource_control:
        memory_limit: "10G"
  - host: 172.23.57.89
    resource_control:
        memory_limit: "10G"
monitoring_servers:
  - host: 172.23.57.88
grafana_servers:
  - host: 172.23.57.88
alertmanager_servers:
  - host: 172.23.57.88

执行部署命令

  • 部署 TiDB 集群:
tiup cluster deploy tidb-test v8.1.0 /tidb/topology.yaml --user root -p
  • tidb-test 为部署的集群名称。
  • v8.1.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 关键词,表示部署成功。

检查部署的TiDB集群情况

  • 执行如下命令检查 tidb-test 集群情况:
tiup cluster display tidb-test

预期输出包括 tidb-test 集群中实例 ID、角色、主机、监听端口和状态(由于还未启动,所以状态为 Down/inactive)、目录信息。

启动集群

  • 采用安全启动方式:
tiup cluster start tidb-test --init

注意

  • 使用安全启动方式后,不能通过无密码的 root 用户登录数据库,TiUP 会自动生成 TiDB root 用户的密码,并在命令行界面返回密码,你需要记录命令行返回的密码进行后续操作。
  • 该自动生成的密码只会返回一次,如果没有记录或者忘记该密码,请参照官网忘记 root 密码修改密码。
  • 这里自动生成的密码为:*Zk81Nt-w9jc2_4g^5

验证集群运行状态

tiup cluster display tidb-test

预期结果输出:各节点 Status 状态信息为 Up 说明集群状态正常。

启停集群

tiup cluster stop tidb-test


tiup cluster start tidb-test

集群服务自启动

  • 命令 tiup cluster enable 用于设置集群服务在机器重启后的自启动,该命令会到指定的节点上去执行 systemctl enable <service> 来开启服务的自启。

注意:

集群全部关机重启时,服务启动的顺序由节点的操作系统启动顺序决定。重启顺序不正确时,在某些情况下,重启后的集群仍然不能提供服务(比如先启动了 TiKV 但未启动 PD,systemd 重启 TiKV 多次仍未找到 PD 则会放弃)。

tiup cluster enable tidb-test

问题解决

  1. 执行命令时用户密码过期。

解决方案:

在各个节点上设置密码永不过期,执行:sudo chage -M 99999 tidb

服务访问

访问TiDB数据库

  • 用户名:root 密码:*Zk81Nt-w9jc2_4g^5 IP:TiDB组件的ip,即172.23.57.88 端口:4000

访问TiDB的Dashboard

  • 通过 http://{pd-ip}:2379/dashboard 访问集群 TiDB Dashboard 监控页面,默认用户名为 root,密码为 *Zk81Nt-w9jc2_4g^5

访问TiDB的Grafana监控

  • 通过 http://{grafana-ip}:3000 访问集群 Grafana 监控页面,默认用户名和密码均为 admin。

开启 binlog(可选)

检查 tidb 是否开启 binlog

mysql>  show global variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | OFF   |
+---------------+-------+
1 row in set (0.02 sec)
--off表示没有开启binlog; 

mysql> show pump status;
Empty set (0.01 sec)
 
mysql> show drainer status;
Empty set (0.04 sec)

开启 binlog

TiDB Binlog 集群主要分为 Pump 和 Drainer 两个组件,以及 binlogctl 工具:

Pump

Pump 用于实时记录 TiDB 产生的 Binlog,并将 Binlog 按照事务的提交时间进行排序,再提供给 Drainer 进行消费。

Drainer

Drainer 从各个 Pump 中收集 Binlog 进行归并,再将 Binlog 转化成 SQL 或者指定格式的数据,最终同步到下游。

cd /tidb
vi scale_out_binlog.yaml

将下面配置文件的内容写入scale_out_binlog.yaml中

pump_servers:
- host: 172.23.57.88    # 指定要在那台服务器部署
  ssh_port: 22
  port: 8250    # 启动端口
  deploy_dir: /tidb/tidb-deploy/pump-8250 
  data_dir: /tidb/tidb-data/pump-8250
  log_dir: /tidb/tidb-deploy/pump-8250/logs
  config:
    gc: 7 # 日志保留天数
    log-file: /tidb/tidb-deploy/pump-8250/logs
    pd-urls: http://172.23.57.87:2379,http://172.23.57.88:2379,http://172.23.57.89:2379 # 连接pd集群
 
drainer_servers:
- host: 172.23.57.88    # 指定要在那台服务器部署
  ssh_port: 22
  port: 8249
  deploy_dir: /tidb/tidb-deploy/drainer-8249
  data_dir: /tidb/tidb-data/drainer-8249
  log_dir: /tidb/tidb-deploy/drainer-8249/logs
  config:
    pd-urls: http://172.23.57.87:2379,http://172.23.57.88:2379,http://172.23.57.89:2379
    syncer.db-type: file    # 同步类型
    syncer.to.host: 172.23.57.87       # tidb连接IP
    syncer.to.password: "*Zk81Nt-w9jc2_4g^5"                      # tidb连接密码
    syncer.to.port: 4000                        # tidb连接端口
    syncer.to.user: root                        # tidb连接用户名
    syncer.ignore-schemas: INFORMATION_SCHEMA,PERFORMANCE_SCHEMA,mysql  # 不同步哪些库
    syncer.ignore-table:    # 忽略那些表
      - db-name: "*"            # 所有库中以sc开头的表忽略同步
        tbl-name: "~^sc.*"
      - db-name: "*"            
        tbl-name: "~^tmp.*"     # 所有库中以tmp开头的表忽略同步
      - db-name: "*"
        tbl-name: "~^dim.*"     # 所有库中以dim开头的表忽略同步
      - db-name: "*"
        tbl-name: "~^sync_table_batch"

部署 pump 和 drainer

tiup cluster scale-out tidb-test /tidb/scale_out_binlog.yaml --user root -p

编辑配置文件

tiup cluster edit-config tidb-test
server_configs:
  tidb:
    binlog.enable: true
    binlog.ignore-error: true

重启

tiup cluster reload tidb-test -R tidb

检查是否已经开启

mysql>  show global variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+

将binlog_format设为row

set global binlog_format='row'
show variables like 'binlog_format'

数据迁移工具 DM (Data Migration) 离线部署

概述

  • TiDB Data Migration (DM) 是一款便捷的数据迁移工具,支持从与 MySQL 协议兼容的数据库(MySQL、MariaDB、Aurora MySQL)到 TiDB 的全量数据迁移和增量数据同步。使用 DM 工具有利于简化数据迁移过程,降低数据迁移运维成本。
  • DM 不会将视图的 DDL 语句同步到下游的 TiDB 集群,也不会将针对视图的 DML 语句同步到下游。在该场景下,建议用户在下游 TiDB 集群中自行创建视图。

部署 DM 组件

部署 1 个 DM-master、1 个 DM-worker,都部署在172.23.57.88上。

编辑 DM 的初始化拓扑配置文件

su - tidb
cd /tidb
vi scale-out-DM.yml
  • DM WebUI 是一个 TiDB Data Migration (DM) 迁移任务管理界面,方便用户以直观的方式管理大量迁移任务,无需使用 dmctl 命令行,简化任务管理的操作步骤。

  • 如需开启 OpenAPI,则必须在拓扑文件中添加如下配置:

    •   server_configs:
    •    master:
    •    openapi: true
  • 在开启 OpenAPI 后,你可以从 DM 集群的任意 master 节点访问 DM WebUI,访问端口与 DM OpenAPI 保持一致,默认为 8261。访问地址示例:http://{master_ip}:{master_port}/dashboard/

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

server_configs:
  master:
    openapi: true

master_servers:
  - host: 172.23.57.88

worker_servers:
  - host: 172.23.57.88

执行部署命令

tiup dm deploy dm-test v8.1.0 /tidb/scale-out-DM.yml --user root -p

以上部署命令中:

  • 通过 TiUP DM 部署的集群名称为 dm-test
  • 部署版本为 ${version},可以通过执行 tiup list dm-master 来查看 TiUP 支持的最新版本。
  • 初始化配置文件为 /tidb/scale-out-DM.yml

检查并启动 DM

# 执行如下命令检查 dm-test 集群情况
tiup dm display dm-test

# 启动集群
tiup dm start dm-test

访问 DM WebUI

http://172.23.57.88:8261/dashboard/
  1. 创建迁移任务之前,需要先行创建所需要同步的上游数据源信息。

  1. 创建迁移任务

DM 运维命令

# 重启 DM
tiup dm restart dm-test

# 启动 DM
tiup dm start dm-test

# 停止 DM
tiup dm stop dm-test

# 销毁 DM 集群
tiup dm destory dm-test

单机离线部署 TiDB 集群

在单台 Linux 服务器上部署 TiDB 最小的完整拓扑的集群。

环境准备

  • 部署主机软件和环境要求如下:

  • 部署需要使用部署主机的 root 用户及密码

  • 部署主机关闭防火墙或者开放 TiDB 集群的节点间所需端口

  • 目前 TiUP Cluster 支持在 x86_64(AMD64)和 ARM 架构上部署 TiDB 集群

    • 在 AMD64 架构下,建议使用 CentOS 7.3 及以上版本 Linux 操作系统
    • 在 ARM 架构下,建议使用 CentOS 7.6 (1810) 版本 Linux 操作系统
  • 由于模拟多机部署,需要通过 root 用户调大 sshd 服务的连接数限制:

    • 修改 /etc/ssh/sshd_configMaxSessions 调至 20
    • 重启 sshd 服务:service sshd restart

离线安装 TiUP 组件

创建用户

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

新建用户,切换到新用户后,只显示$问题,许多命令不能用,解决如下:

  1. 切换到root用下,执行cat /etc/passwd
  2. 最后一行发现shell为/bin/sh
  3. 默认的shell为:/bin/sh ,需要把其修改为/bin/bash
useradd -m -d /home/tidb tidb 
visudo 
tidb ALL=(ALL) NOPASSWD: ALL 
su - tidb 
ssh-keygen -t rsa
  • 切换到root用户,创建/tidb目录作为中控机的部署目录,创建/tidb/soft作为离线部署离线镜像包的存储目录,并对目录进行授权后,切换到tidb用户。
exit
mkdir /tidb
mkdir /tidb/soft
chown -R tidb:tidb /tidb 
chmod -R 775 /tidb
su - tidb

准备TiUP离线组件包

  • 访问TiDB社区版页面,在官方下载页面选择对应版本的 TiDB server 离线镜像包(包含 TiUP 离线组件包)。需要同时下载 TiDB-community-server 软件包和 TiDB-community-toolkit 软件包。

选择v8.5.0版本,架构选择x86,64-bit

  • 将下载的2个软件包上传到/tidb/soft目录下

部署离线环境TiUP组件

  • 执行以下命令安装 TiUP 组件:
cd /tidb/soft

tar xzvf tidb-community-server-v8.5.0-linux-amd64.tar.gz
sh tidb-community-server-v8.5.0-linux-amd64/local_install.sh
# TiUP 安装完成后会提示对应 Shell profile 文件的绝对路径。
# 在执行以下 source 命令前,需要将 ${your_shell_profile} 修改为 Shell profile 文件的实际位置。
source /home/tidb/.bash_profile

合并离线包

  • 如果是通过官方下载页面下载的离线软件包,需要将 TiDB-community-server 软件包和 TiDB-community-toolkit 软件包合并到离线镜像中。执行以下命令合并离线组件到 server 目录下。
tar xf tidb-community-toolkit-v8.5.0-linux-amd64.tar.gz
ls -ld tidb-community-server-v8.5.0-linux-amd64 tidb-community-toolkit-v8.5.0-linux-amd64
cd tidb-community-server-v8.5.0-linux-amd64/
cp -rp keys ~/.tiup/
tiup mirror merge ../tidb-community-toolkit-v8.5.0-linux-amd64

集群拓扑

最小规模的 TiDB 集群拓扑包含以下实例:

实例 个数 IP 配置
TiKV 3 172.23.57.225 使用递增的端口号以避免冲突
TiDB 1 172.23.57.225 使用默认端口和其他配置
PD 1 172.23.57.225 使用默认端口和其他配置
Monitor 1 172.23.57.225 使用默认端口和其他配置

初始化集群拓扑文件

cd /tidb
vi topology.yaml

将下面配置文件的内容写入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/tidb-deploy"
 data_dir: "/tidb/tidb-data"
 resource_control:
    memory_limit: "4G"

# # Monitored variables are applied to all the machines.
monitored:
 node_exporter_port: 9100
 blackbox_exporter_port: 9115

server_configs:
 tidb:
   log.file.max-days: 7
   instance.tidb_slow_log_threshold: 300
 tikv:
   log.file.max-days: 7
   readpool.storage.use-unified-pool: false
   readpool.coprocessor.use-unified-pool: true
 pd:
   log.file.max-days: 7
   replication.enable-placement-rules: true
   replication.location-labels: ["host"]
 tiflash:
   logger.level: "info"

pd_servers:
 - host: 172.23.57.225

tidb_servers:
 - host: 172.23.57.225

tikv_servers:
 - host: 172.23.57.225
   port: 20160
   status_port: 20180
   resource_control:
     memory_limit: "6G"
   config:
     server.labels: { host: "logic-host-1" }

 - host: 172.23.57.225
   port: 20161
   status_port: 20181
   resource_control:
     memory_limit: "6G"
   config:
     server.labels: { host: "logic-host-2" }

 - host: 172.23.57.225
   port: 20162
   status_port: 20182
   resource_control:
     memory_limit: "6G"
   config:
     server.labels: { host: "logic-host-3" }

monitoring_servers:
 - host: 172.23.57.225
   port: 9091

grafana_servers:
 - host: 172.23.57.225

执行部署命令

  • 部署 TiDB 集群:
tiup cluster deploy tidb-single v8.5.0 /tidb/topology.yaml --user root -p
  • tidb-single 为部署的集群名称。
  • v8.5.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 关键词,表示部署成功。

检查部署的TiDB集群情况

  • 执行如下命令检查 tidb-single 集群情况:
tiup cluster display tidb-single

预期输出包括 tidb-single 集群中实例 ID、角色、主机、监听端口和状态(由于还未启动,所以状态为 Down/inactive)、目录信息。

启动集群

  • 采用安全启动方式:
tiup cluster start tidb-single --init

注意

  • 使用安全启动方式后,不能通过无密码的 root 用户登录数据库,TiUP 会自动生成 TiDB root 用户的密码,并在命令行界面返回密码,你需要记录命令行返回的密码进行后续操作。
  • 该自动生成的密码只会返回一次,如果没有记录或者忘记该密码,请参照官网忘记 root 密码修改密码。
  • 这里自动生成的密码为:3k5+4S2nD*^69YB-EW

验证集群运行状态

tiup cluster display tidb-single

预期结果输出:各节点 Status 状态信息为 Up 说明集群状态正常。

启停集群

tiup cluster stop tidb-single

tiup cluster start tidb-single

集群服务自启动

  • 命令 tiup cluster enable 用于设置集群服务在机器重启后的自启动,该命令会到指定的节点上去执行 systemctl enable <service> 来开启服务的自启。

注意:

集群全部关机重启时,服务启动的顺序由节点的操作系统启动顺序决定。重启顺序不正确时,在某些情况下,重启后的集群仍然不能提供服务(比如先启动了 TiKV 但未启动 PD,systemd 重启 TiKV 多次仍未找到 PD 则会放弃)。

tiup cluster enable tidb-single

0
0
0
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论