TIDB7.5LTS集群安装配置手
- 简介
因近期有一个项目需要上线,在评估使用什么架构时,和开发同仁沟通需求,了解到该应用为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 |
- 需要开通外网,并配置好外部yum源 (安装依赖包,TIUP,mysql等都需要外网拉取)
- 安装依赖包
编译和构建 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 中,建议对操作系统进行如下的配置优化:
- 关闭透明大页(即 Transparent Huge Pages,缩写为 THP)。数据库的内存访问模式往往是稀疏的而非连续的。当高阶内存碎片化比较严重时,分配 THP 页面会出现较高的延迟。
- 将存储介质的 I/O 调度器设置为 noop。对于高速 SSD 存储介质,内核的 I/O 调度操作会导致性能损失。将调度器设置为 noop 后,内核不做任何操作,直接将 I/O 请求下发给硬件,以获取更好的性能。同时,noop 调度器也有较好的普适性。
- 为调整 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]
- 执行以下命令修改 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
- 手动配置 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.
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!