1.查看系统版本是否支持
[root@localhost ~]# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 LTS"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 LTS"
ANSI_COLOR="0;31"
[root@localhost ~]#
2.下载软件
3.TiDB 环境与系统配置检查
3.1在 TiKV 部署目标机器上添加数据盘 EXT4 文件系统挂载参数
[root@localhost ~]# cat /etc/fstab|grep /opt
/dev/mapper/openeuler-opt /opt ext4 defaults,nodelalloc,noatime 1 2
[root@localhost ~]#
3.2检测及关闭系统 swap
echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff -a
sysctl -p
3.3 设置 TiDB 节点的临时空间(推荐)
sudo mkdir /tmp/tidb
如果目录 /tmp/tidb 已经存在,需确保有写入权限。
sudo chmod -R 777 /tmp/tidb
3.4关闭系统防火墙
检测及关闭目标部署机器的防火墙
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
3.5 配置系统参数
执行以下命令修改 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
sysctl -p
执行以下命令配置用户的 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
3.6创建tidb用户,配置互信和免密
由于为单机版本,互信省略
手动配置 SSH 互信及 sudo 免密码
对于有需求,通过手动配置中控机至目标节点互信的场景,可参考本段。通常推荐使用 TiUP 部署工具会自动配置 SSH 互信及免密登录,可忽略本段内容。
以 root 用户依次登录到部署目标机器创建 tidb 用户并设置登录密码。
useradd tidb && \
passwd tidb
执行以下命令,将 tidb ALL=(ALL) NOPASSWD: ALL 添加到文件末尾,即配置好 sudo 免密码。
visudo
tidb ALL=(ALL) NOPASSWD: ALL
以 tidb 用户登录到部署目标机器后,执行以下命令,不需要输入密码并切换到 root 用户,表示 tidb 用户 sudo 免密码配置成功。
sudo -su root
4.部署离线环境 TiUP 组件
4.1 上传并解压离线安装包
将离线包发送到目标集群的中控机后,执行以下命令安装 TiUP 组件:
使用tidb用户
tar xzvf tidb-community-server-v7.6.0-linux-amd64.tar.gz && \
sh tidb-community-server-v7.6.0-linux-amd64/local_install.sh && \
source /home/tidb/.bash_profile
4.2 合并离线包
合并离线包
如果是通过官方下载页面下载的离线软件包,需要将 TiDB-community-server 软件包和 TiDB-community-toolkit 软件包合并到离线镜像中。如果是通过 tiup mirror clone 命令手动打包的离线组件包,不需要执行此步骤。
执行以下命令合并离线组件到 server 目录下。
tar xf tidb-community-toolkit-v7.6.0-linux-amd64.tar.gz
ls -ld tidb-community-server-v7.6.0-linux-amd64 tidb-community-toolkit-v7.6.0-linux-amd64
cd tidb-community-server-v7.6.0-linux-amd64/
cp -rp keys ~/.tiup/
tiup mirror merge ../tidb-community-toolkit-v7.6.0-linux-amd64
4.3 生成部署拓扑文件
tiup cluster template > topology.yaml
[tidb@localhost ~]$ cd /opt/tidb/soft/tidb-community-server-v7.6.0-linux-amd64/
[tidb@localhost tidb-community-server-v7.6.0-linux-amd64]$ cat topology.yaml
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/opt/tidb/tidb-deploy"
data_dir: "/opt/tidb/tidb-data"
server_configs: {}
pd_servers:
- host: 10.x.x.239
deploy_dir: "/opt/tidb/tidb-deploy/pd-2379"
data_dir: "/opt/tidb/tidb-data/pd-2379"
log_dir: "/opt/tidb/tidb-deploy/pd-2379/log"
tidb_servers:
- host: 10.x.x.239
deploy_dir: "/opt/tidb/tidb-deploy/tidb-4000"
log_dir: "/opt/tidb/tidb-deploy/tidb-4000/log"
tikv_servers:
- host: 10.x.x.239
deploy_dir: "/opt/tidb/tidb-deploy/tikv-20160"
data_dir: "/opt/tidb/tidb-data/tikv-20160"
log_dir: "/opt/tidb/tidb-deploy/tikv-20160/log"
monitoring_servers:
- host: 10.x.x.239
deploy_dir: "/opt/tidb/tidb-deploy/prometheus-8249"
data_dir: "/opt/tidb/tidb-data/prometheus-8249"
log_dir: "/opt/tidb/tidb-deploy/prometheus-8249/log"
grafana_servers:
- host: 10.x.x.239
deploy_dir: /opt/tidb/tidb-deploy/grafana-3000
alertmanager_servers:
- host: 10.x.x.239
deploy_dir: "/opt/tidb/tidb-deploy/alertmanager-9093"
data_dir: "/opt/tidb/tidb-data/alertmanager-9093"
log_dir: "/opt/tidb/tidb-deploy/alertmanager-9093/log"
[tidb@localhost tidb-community-server-v7.6.0-linux-amd64]$
4.4 使用tiup检测和部署
以下均使用tidb用户,需要输入tidb用户的密码
检查集群存在的潜在风险:
tiup cluster check ./topology.yaml --user tidb
自动修复集群存在的潜在风险:
tiup cluster check ./topology.yaml --apply --user tidb -p
部署 TiDB 集群:
tiup cluster deploy tidb-test v7.6.0 ./topology.yaml --user tidb -p
初始化TIDB集群:
tiup cluster start tidb-test --init
4.5 查看集群
[tidb@localhost ]$ tiup cluster display tidb-test
tiup is checking updates for component cluster ...
Starting component `cluster`: /home/tidb/.tiup/components/cluster/v1.14.1/tiup-cluster display tidb-test
Cluster type: tidb
Cluster name: tidb-test
Cluster version: v7.6.0
Deploy user: tidb
SSH type: builtin
Dashboard URL: http://10.x.x.239:2379/dashboard
Grafana URL: http://10.x.x.239:3000
ID Role Host Ports OS/Arch Status Data Dir Deploy Dir
-- ---- ---- ----- ------- ------ -------- ----------
10.x.x.239:9093 alertmanager 10.x.x.239 9093/9094 linux/x86_64 Up /opt/tidb/tidb-data/alertmanager-9093 /opt/tidb/tidb-deploy/alertmanager-9093
10.x.x.239:3000 grafana 10.x.x.239 3000 linux/x86_64 Up - /opt/tidb/tidb-deploy/grafana-3000
10.x.x.239:2379 pd 10.x.x.239 2379/2380 linux/x86_64 Up|L|UI /opt/tidb/tidb-data/pd-2379 /opt/tidb/tidb-deploy/pd-2379
10.x.x.239:9090 prometheus 10.x.x.239 9090/12020 linux/x86_64 Up /opt/tidb/tidb-data/prometheus-8249 /opt/tidb/tidb-deploy/prometheus-8249
10.x.x.239:4000 tidb 10.x.x.239 4000/10080 linux/x86_64 Up - /opt/tidb/tidb-deploy/tidb-4000
10.x.x.239:20160 tikv 10.x.x.239 20160/20180 linux/x86_64 Up /opt/tidb/tidb-data/tikv-20160 /opt/tidb/tidb-deploy/tikv-20160
Total nodes: 6
[tidb@localhost tidb-community-server-v7.6.0-linux-amd64]$