TIDB7.5LTS集群安装配置手

发布时间:2023年12月20日

  • 简介

 因近期有一个项目需要上线,在评估使用什么架构时,和开发同仁沟通需求,了解到该应用为OLTP但是数据量很集中,会有几张超大的表,如果要保证事务效率,使用mysql集群难免会要做分库分表,对后期的运维带来很大的挑战;而TIDB属于分布式集群,TIKV的行存模式非常适用于大表事务性业务,因此选型用TIDB来作为该应用的底层数据库架构;

安装集群的一些基本配置要求请参考如下官方文档,这里不再赘述

https://docs.pingcap.com/zh/tidb/stable/hardware-and-software-requirements

TIDB7.5LTS 长期支持版本相关特性介绍如下链接

TiDB 7.5 LTS 发版丨提升规模化场景下关键应用的稳定性和成本的灵活性 - 墨天轮

ps:默认命令为加粗斜体

  • 安装前准备

本次安装为测试环境配置为1 台TIDB/PD 3台TIKV

配置信息

IP

TIDB/PD

1台8C/16GB 200GB centos7.9

10.189.60.201

TIKV

3台8C/32GB 200GB centos7.9

10.189.60.202/203/204

  1. 需要开通外网,并配置好外部yum源 (安装依赖包,TIUP,mysql等都需要外网拉取)
  2. 安装依赖包

编译和构建 TiDB 所需的依赖库

版本

Golang

1.21 及以上版本

Rust

nightly-2022-07-31 及以上版本

GCC

7.x

LLVM

13.0 及以上版本

NTP

None

Ntpdate

None

Sshpass

1.06 及以上

Numactl

2.0.12 及以上

2.1 安装依赖包

yum install –y gcc llvm sshpass numactl ntp ntpdate

2.2安装GO语言包1.21 及以上版本

go 官网下载All releases - The Go Programming Language

下载go1.21.5.linux-amd64.tar.gz

上传到集群各个主机

chown root:root go1.21.5.linux-amd64.tar.gz    ##修改属性
tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz  ##解压到执行目录

vi .bash_profile   ##修改root 环境变量

PATH=$PATH:$HOME/bin:/usr/local/go/bin

# go version   ##生效环境变量后检查go版本

2.3安装rust语言包

curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

安装完成后确认版本

# rustc --version 

3.设置临时空间

sudo mkdir /tmp/tidb

如果目录 /tmp/tidb 已经存在,需确保有写入权限。

sudo chmod -R 777 /tmp/tidb

4.关闭防火墙

检查防火墙状态(以 CentOS 7.x 为例)

sudo firewall-cmd --state

sudo systemctl status firewalld.service

关闭防火墙服务

sudo systemctl stop firewalld.service

关闭防火墙自动启动服务

sudo systemctl disable firewalld.service

检查防火墙状态

sudo systemctl status firewalld.service

5.配置NTP服务

yum install -y ntp ntpdate

systemctl start ntpd.service

systemctl enable ntpd.service

systemctl status ntpd.service

6.检测及关闭swap

echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff –a
sysctl –p

vi /etc/fstab

# 注释加载swap分区的那行记录

#UUID=4f863b5f-20b3-4a99-a680-ddf84a3602a4 swap                    swap    defaults        0 0

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

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

  1. 关闭透明大页(即 Transparent Huge Pages,缩写为 THP)。数据库的内存访问模式往往是稀疏的而非连续的。当高阶内存碎片化比较严重时,分配 THP 页面会出现较高的延迟。
  2. 将存储介质的 I/O 调度器设置为 noop。对于高速 SSD 存储介质,内核的 I/O 调度操作会导致性能损失。将调度器设置为 noop 后,内核不做任何操作,直接将 I/O 请求下发给硬件,以获取更好的性能。同时,noop 调度器也有较好的普适性。
  3. 为调整 CPU 频率的 cpufreq 模块选用 performance 模式。将 CPU 频率固定在其支持的最高运行频率上,不进行动态调节,可获取最佳的性能。

因为本次使用虚拟机 且无SSD 2/3项目无需调整

修改当前的内核配置立即关闭透明大页。

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
检查修改后的状态
cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
 

  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
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 免密码

对于有需求,通过手动配置中控机至目标节点互信的场景,可参考本段。通常推荐使用 TiUP 部署工具会自动配置 SSH 互信及免密登录,可忽略本段内容

配置互信和oracle 11g rac配置互信类似

以 root 用户依次登录到部署目标机器创建 tidb 用户并设置登录密码。

useradd tidb && \
passwd tidb

置好 sudo 免密码。

visudo
tidb ALL=(ALL) NOPASSWD: ALL
配置互信
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.189.60.201(ip)
因为本次配置tidb和pd在同一台所以也需要配置本机互信
注意:因为修改了默认的ssh端口 ssh时候需要使用
Ssh –p xxxx ip/hostname
为了不加-p的参数需要修改
vi /etc/ssh/ssh_config
拿掉port的注释 并修改为修改后的端口号即可
       确认互信成功
[tidb@YZPTLTIDB01T ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub 10.189.60.204
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/tidb/.ssh/id_rsa.pub"
The authenticity of host '[10.189.60.204]:11122 ([10.189.60.204]:11122)' can't be established.
文章来源:https://blog.csdn.net/xiaofan23z/article/details/135110882
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。