TiDB部署

参照官方教程  https://learn.pingcap.com/learner/course/30002

本次部署TIDB 共包含1个TIDB,3个PD,3个TIKV

Linux版本 CentOS-7-x86_64-Minimal-2009.iso

TiDB版本v1.5.4

虚拟机环境配置:

这里记得把网络打开 ,自动配置就好,不然一会装好了还得单配置网卡信息

 

安装tiup

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

生效全局变量

source /root/.bash_profile

安装cluster组件

tiup cluster

更新tiup工具 以及 cluster组件

tiup update --self && tiup update cluster

查看版本

tiup --binary cluster

生成集群拓扑文件

tiup cluster template > topology.yaml

 修改集群节点 vi topology.yaml

Tiflash 目前没有,就先注释了 

 

配置完后 系统检查一下

tiup cluster check ./topology.yaml --apply --user root -p

好多问题啊 红色的全是检查不通过的

用这个手册配置一下,这个是装好系统后需要配置的,我试试不配能不能行,果然不行,检查不通过,还是老老实实配一下吧TiDB Environment and System Configuration Check | PingCAP Docshttps://docs.pingcap.com/tidb/stable/check-before-deployment

 

一.在部署 TiKV 的目标机器上使用选项挂载数据盘 ext4 文件系统

查看数据盘

fdisk -l

创建分区

parted -s -a optimal /dev/nvme0n1 mklabel gpt -- mkpart primary ext4 1 -1

这个由于只有一块磁盘,每次分区的时候总提示正在使用 无法分区,然后又加了一块磁盘 sdb sdb格式化就好了

parted -s -a optimal /dev/sdb mklabel gpt -- mkpart primary ext4 1 -1

虚拟机添加sdb磁盘如下:

 

 

 将数据盘格式化为ext4文件系统

mkfs.ext4 /dev/sdb

 查看数据盘的分区UUID

lsblk -f

 编辑/etc/fstab文件并添加nodelalloc挂载选项

vi /etc/fstab

挂载数据盘

mkdir /data1 && \
mount -a

使用以下命令检查

mount -t ext4

 二.检查并禁用系统交换

echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff -a && swapon -a
sysctl -p

三.检查并停止目标机器的防火墙服务

检查防火墙状态

sudo firewall-cmd --state
sudo systemctl status firewalld.service

停止防火墙服务

sudo systemctl stop firewalld.service

禁用防火墙服务的自动启动

sudo systemctl disable firewalld.service

 检查防火墙状态

sudo systemctl status firewalld.service

.检查并安装NTP服务

手动安装NTP服务

sudo yum install ntp ntpdate && \
sudo systemctl start ntpd.service && \
sudo systemctl enable ntpd.service

检查NTP服务是否安装,与NTP服务器同步是否正常

运行以下命令。如果返回running,则 NTP 服务正在运行

sudo systemctl status ntpd.service

 执行ntpstat命令检查NTP服务是否与NTP服务器同步

ntpstat

五.检查和配置操作系统的最佳参数

执行以下命令查看THP是开启还是关闭:

cat /sys/kernel/mm/transparent_hugepage/enabled

如果[always] madvise never是输出,则启用 THP。你需要禁用它

 执行以下命令可以查看数据目录所在磁盘的I/O Scheduler。假设您在 sdb 和 sdc 磁盘上都创建了数据目录:

cat /sys/block/sd[bc]/queue/scheduler

如果noop [deadline] cfq是输出,则磁盘的 I/O 调度程序处于deadline模式。您需要将其更改为noop

执行以下命令查看ID_SERIAL磁盘

udevadm info --name=/dev/sdb | grep ID_SERIAL
E: ID_SERIAL=36d0946606d79f90025f3e09a0c1f9e81
E: ID_SERIAL_SHORT=6d0946606d79f90025f3e09a0c1f9e81这个在我都虚拟机上是查不出来的

 执行以下命令查看cpufreq模块的电源策略

cpupower frequency-info --policy

配置操作系统的最佳参数

tuned-adm list

 创建一个新的调整配置文件

mkdir /etc/tuned/virtual-guest-tidb-optimal/
vi /etc/tuned/virtual-guest-tidb-optimal/tuned.conf
[main]
include=virtual-guest
[cpu]
governor=performance
[vm]
transparent_hugepages=never
[disk]
devices_udev_regex=(ID_SERIAL=36d0946606d79f90025f3e09a0c1fc035)|(ID_SERIAL=36d0946606d79f90025f3e09a0c1f9e81) 这个不清楚怎么才能查到  这里我就不写了 这行删掉
elevator=noop

应用新调整的配置文件

tuned-adm profile virtual-guest-tidb-optimal

 执行以下命令以验证 THP 状态

cat /sys/kernel/mm/transparent_hugepage/enabled

执行以下命令验证数据目录所在磁盘的I/O Scheduler

cat /sys/block/sd[bc]/queue/scheduler

执行以下命令查看cpufreq模块的电源策略

cpupower frequency-info --policy

执行以下命令修改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无密码

分别使用root用户账号登录目标机器,创建tidb用户并设置登录密码

useradd tidb && \passwd tidb

要配置不带密码的 sudo,请运行以下命令,并添加tidb ALL=(ALL) NOPASSWD: ALL到文件末尾

visudo
tidb ALL=(ALL) NOPASSWD: ALL

使用tidb用户登录中控机,运行以下命令。替换10.0.1.1为您的目标机器的IP,并tidb根据提示输入目标机器的用户密码。执行该命令后,SSH 互信已经建立。这也适用于其他机器。新创建的tidb用户没有该.ssh目录。要创建这样的目录,请执行生成 RSA 密钥的命令。要在中控机上部署 TiDB 组件,需要为中控机和中控机配置互信

ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.1.1

使用tidb用户账号登录中控机,使用登录目标机IP ssh。如果不需要输入密码也能成功登录,则说明SSH互信配置成功。

ssh 10.0.1.1

使用tidb用户登录目标机器后,运行以下命令。如果不需要输入密码,可以切换到root用户,那么sudo无密码tidb用户就配置成功了。

sudo -su root

七.安装numactl工具

 登录目标节点进行安装。以 CentOS Linux 7.7.1908 (Core) 版本为例

sudo yum -y install numactl

运行exec命令 usingtiup cluster批量安装

tiup cluster exec --help

说明:要使用 sudo 权限对tidb-test集群中的所有目标机器执行安装命令,请运行以下命令

tiup cluster exec tidb-test --sudo --command "yum -y install numactl"

--------------------------准备工作完结--------------------------

上边这些准备工作做完了,又重新检查一下能否安装,发现还是有问题

一个是swap is enabled  一个是will try to 'start irqbalance.service' 

禁用swap:

Vi /etc/fstab 
注释掉下面这行
#/dev/mapper/centos-swap swap                    swap    defaults        0 0

临时关闭:

swapoff -a

开启irabalance  :

systemctl start irqbalance

这个虚拟机在安装的时候 给的是1核  irqbalance怎么起都起不来,后来又加了1核 就好了 真坑 

 禁用thp:

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

 终于检查通过了  真不容易 我的天

根据拓扑文件 部署tidb

tiup cluster deploy tidb-test v5.0.0 ./topology.yaml --user root -p

 

 查看集群信息

tiup cluster list

 查看集群状态

tiup cluster display tidb-test

 启动tidb

tiup cluster start tidb-test

启动之后再看一下状态 一切正常

参考文档:TiDB 简介 | PingCAP Docs了解 TiDB 数据库。https://docs.pingcap.com/zh/tidb/stable

### 如何部署 TiDB 集群 #### 使用 TiUP 工具部署 TiDB 集群 TiUP 是一种现代化的工具集合管理器,用于简化 TiDB 的安装和运维过程。以下是基于 TiUP 部署 TiDB 集群的关键步骤: 1. **安装 TiUP 和 Cluster 组件** 安装 TiUP 并初始化环境变量后,可以通过以下命令安装 `tiup-cluster` 组件[^1]: ```bash curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh tiup install cluster ``` 2. **创建集群拓扑文件** 创建一个 JSON 格式的拓扑文件来定义节点角色及其对应的机器地址。例如: ```json { "pd": [ {"host": "192.168.0.1"}, {"host": "192.168.0.2"} ], "tikv": [ {"host": "192.168.0.3"}, {"host": "192.168.0.4"} ], "tidb": [ {"host": "192.168.0.5"}, {"host": "192.168.0.6"} ] } ``` 这里分别指定了 PD(Placement Driver)、TiKV 和 TiDB 节点的角色分布。 3. **初始化并部署集群** 初始化集群配置并通过指定拓扑文件完成部署操作: ```bash tiup cluster deploy tidb-test v6.5.0 /path/to/topology.yaml --user root -p tiup cluster start tidb-test ``` 上述命令会根据版本号 `v6.5.0` 和路径中的拓扑文件 `/path/to/topology.yaml` 来部署名为 `tidb-test` 的集群,并启动它。 4. **验证集群状态** 验证已部署TiDB 集群是否正常工作: ```bash tiup cluster display tidb-test tiup cluster health tidb-test mysql -h 192.168.0.5 -P 4000 -u root ``` --- #### 结合 Kubernetes (KubeSphere) 部署 TiDB 对于云原生场景下的分布式数据库需求,可以利用 KubeSphere 提供的功能快速部署 TiDB 集群[^2]。 1. **启用多集群联邦功能** 如果希望实现跨区域高可用,则可以在 KubeSphere 中开启多集群支持,并将 TiDB 的组件副本分发至不同的物理或逻辑集群上。 2. **使用 Helm Chart 或 Operator 自动化部署** 借助官方提供的 TiDB Operator,在 Kubernetes 环境下能够轻松实现声明式管理和动态扩展能力。具体流程如下: - 添加仓库源; - 编辑 values 文件调整参数设置; - 执行安装指令。 示例代码片段展示如何引入资源清单文件: ```yaml apiVersion: pingcap.com/v1alpha1 kind: TidbCluster metadata: name: basic-tidb-cluster spec: pd: replicas: 3 tikv: replicas: 3 tidb: replicas: 2 ``` 3. **监控与维护** 利用 Prometheus/Grafana 对整个系统的性能指标进行持续跟踪分析;同时借助 Backup & Restore 插件保障数据安全备份恢复机制的有效性。 --- #### 公有云/私有云上的自动化解决方案 为了进一步降低复杂度提升效率,PingCAP 推出了专门针对云端优化的产品——TiDB Cloud[^3] 。用户无需关心底层基础设施细节即可享受到完全托管的服务体验,只需简单几步就能构建起生产级别的 HTAP 数据平台实例。 ```python import pymysql connection = pymysql.connect( host='your-host', port=4000, user='root', password='', database='' ) cursor = connection.cursor() cursor.execute('SHOW DATABASES;') print(cursor.fetchall()) ``` 上述 Python 脚本演示了连接到远程 TiDB Server 后查询现有库列表的过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值