TiDB离线部署、Tiup部署TiDB
先做tidb准备工作:
部署 TiDB 前的环境检查操作:TiDB 环境与系统配置检查 | PingCAP 文档中心
1.查看数据盘
fdisk -l
(2,3)本人的分区已经是 ext4 文件系统不用分区,具体官方文档的分区:
4.查看数据盘分区 UUID。
lsblk -f
5.编辑 /etc/fstab
文件,添加 nodelalloc
挂载参数
vi /etc/fstab
UUID=49824831-8a3c-41b5-9916-59bd834ca598 /data1 ext4 defaults,nodelalloc,noatime 0 2
6.挂载数据盘
mkdir /data1 && mount -a
7.查看挂载是否正确
mount -t ext4
我的结果跟官方的结果存在差异,缺少nodelalloc,data=ordered多出seclabel:/dev/nvme0n1p1 on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)
[root@localhost ~]# mount -t ext4
/dev/mapper/openeuler-root on / type ext4 (rw,relatime,seclabel)
/dev/sda1 on /boot type ext4 (rw,relatime,seclabel)
/dev/mapper/openeuler-root on /data1 type ext4 (rw,noatime,seclabel)
检测及关闭系统 swap
如果在操作系统初始化阶段,已经单独划分了 swap 分区盘,并且启用了 swap,则使用以下命令进行关闭:
echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff -a
sysctl -p
如果主机内存偏小,关闭系统 swap 可能会更容易触发 OOM 问题,可参考以如下方法将 swap 优先级调低,但不做永久关闭:
echo "vm.swappiness = 0">> /etc/sysctl.conf
sysctl -p
设置 TiDB 节点的临时空间
sudo mkdir /tmp/tidb
sudo chmod -R 777 /tmp/tidb
检测及关闭目标部署机器的防火墙
sudo systemctl status firewalld
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl status firewalld
检测及安装 NTP 服务
sudo systemctl status chronyd
执行 chronyc tracking
命令查看 Chrony 服务是否与 NTP 服务器同步
chronyc tracking
检查和配置操作系统优化参数
1.关闭透明大页
查看:cat /sys/kernel/mm/transparent_hugepage/enabled
关闭:禁用透明大页(THP)
可以通过修改内核参数来禁用透明大页,编辑 /etc/sysctl.conf
文件并添加:
vm.nr_hugepages = 0
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
sudo sysctl -p /etc/sysctl.conf
2.配置系统优化参数
查看当前策略
tuned-adm list
Current active profile: virtual-guest 表示当前操作系统的 tuned 策略使用 virtual-guest
创建新的 tuned 策略:
mkdir /etc/tuned/balanced-tidb-optimal/
vi /etc/tuned/balanced-tidb-optimal/tuned.conf
[main]
include=balanced[cpu]
governor=performance[vm]
transparent_hugepages=never[disk]
devices_udev_regex=(ID_SERIAL=36d0946606d79f90025f3e09a0c1fc035)|(ID_SERIAL=36d0946606d79f90025f3e09a0c1f9e81)
elevator=noop
应用新的 tuned 策略
tuned-adm profile balanced-tidb-optimal
安装 numactl 工具
sudo yum install numactl
手动配置 SSH 互信及 sudo 免密码
略,有需求的看官方文档
------准备工作完成,重启一下服务器reboot,开始安装,部署,真是太麻烦了
reboot
-----重启完可能使用不了tar,需要重新挂载一下
[root@localhost tidb]# mount -o remount,rw /
[root@localhost tidb]# mount -o remount,rw /data1
[root@localhost tidb]# mount -t ext4
/dev/mapper/openeuler-root on / type ext4 (rw,relatime,seclabel,nodelalloc)
/dev/mapper/openeuler-root on /data1 type ext4 (rw,noatime,seclabel,nodelalloc)
通过官方下载页面下载的离线软件包,上传到服务器后执行以下密令安装 TiUP 组件:
tar -zxvf tidb-community-server-v7.1.3-linux-amd64.tar.gz
禁用了遥测,并设置了镜像路径
sh tidb-community-server-v7.1.3-linux-amd64/local_install.sh
加载变量环境
source /root/.bash_profile
下面是tidb-community-toolkit:
解压:
tar -xf tidb-community-toolkit-v7.1.3-linux-amd64.tar.gz
查看文件权限
ls -ld tidb-community-server-v7.1.3-linux-amd64 tidb-community-toolkit-v7.1.3-linux-amd64
进入目录:
cd tidb-community-server-v7.1.3-linux-amd64
将名为 keys
的文件夹复制到 ~/.tiup/
目录下,并保留原始文件夹的属性
cp -rp keys ~/.tiup/
使用 tiup
命令将指定路径下的镜像合并到 TiUP 的镜像列表中
tiup mirror merge ../tidb-community-toolkit-v7.1.3-linux-amd64
执行如下命令,生成集群初始化配置文件:
tiup cluster template > topology.yaml
执行上面密令会出提示,tiup有更新,我们先不管,查看一下tiup的版本,能用就不用更新
tiup --version
打开topology.yaml文件
vi topology.yaml
global:user: "tidb"ssh_port: 22deploy_dir: "/tidb-deploy"data_dir: "/tidb-data"listen_host: 0.0.0.0arch: "amd64"monitored:node_exporter_port: 9100blackbox_exporter_port: 9115server_configs:tidb:log.slow-threshold: 300tikv:readpool.storage.use-unified-pool: falsereadpool.coprocessor.use-unified-pool: truepd:replication.enable-placement-rules: truereplication.location-labels: ["host"]tiflash:logger.level: "info"pd_servers:- host: 10.9.7.27tidb_servers:- host: 10.9.7.27port: 4000status_port: 10080deploy_dir: "/tidb-deploy/tidb-4000"log_dir: "/tidb-deploy/tidb-4000/log"tikv_servers:- host: 10.9.7.27port: 20160status_port: 20180deploy_dir: "/data1/tidb-deploy/tikv-20160"data_dir: "/data1/tidb-data/tikv-20160"log_dir: "/data1/tidb-deploy/tikv-20160/log"config:server.labels: { host: "logic-host-1" }- host: 10.9.7.27port: 20161status_port: 20181deploy_dir: "/data2/tidb-deploy/tikv-20161"data_dir: "/data2/tidb-data/tikv-20161"log_dir: "/data2/tidb-deploy/tikv-20161/log"config:server.labels: { host: "logic-host-2" }- host: 10.9.7.27port: 20162status_port: 20182deploy_dir: "/data1/tidb-deploy/tikv-20162"data_dir: "/data1/tidb-data/tikv-20162"log_dir: "/data1/tidb-deploy/tikv-20162/log"config:server.labels: { host: "logic-host-3" }tiflash_servers:- host: 10.9.7.27tcp_port: 9000flash_service_port: 3930flash_proxy_port: 20170flash_proxy_status_port: 20292metrics_port: 8234deploy_dir: /data1/tidb-deploy/tiflash-9000data_dir: /data1/tidb-data/tiflash-9000log_dir: /data1/tidb-deploy/tiflash-9000/log
#先注释掉,不添加kvcdc_server
#kvcdc_servers:#- host: 10.9.7.27#port: 8600#data_dir: "/data1/tidb-data/tikv-cdc-8600"#log_dir: "/data1/tidb-deploy/tikv-cdc-8600/log"
monitoring_servers:- host: 10.9.7.27
grafana_servers:- host: 10.9.7.27
alertmanager_servers:- host: 10.9.7.27
执行部署命令前,先使用 check
及 check --apply
命令检查和自动修复集群存在的潜在风险:
检查集群存在的潜在风险:
tiup cluster check ./topology.yaml --user root -p
自动修复集群存在的潜在风险:
tiup cluster check ./topology.yaml --apply --user root -p
执行完上面的密令有一推需要解决的报错:(有些问题是跟分区那步没做好造成的,所有能按官方的TiDB 环境与系统配置检查来最好,也就是文章的开头)
----start----这部分是检测后需要手动调整的
1.设置网络参数
添加以下参数到 /etc/sysctl.conf
文件:
net.core.somaxconn = 32768
net.ipv4.tcp_syncookies = 0
2.关闭 SELinux:
编辑 /etc/selinux/config
文件,将 SELINUX=enforcing
改为 SELINUX=disabled
,然后重启系统生效
----end----
部署 TiDB 集群:
tiup cluster deploy tidb-test v7.1.3 ./topology.yaml --user root -p
查看 TiUP 管理的集群情况
tiup cluster list
检查 tidb-test
集群情况
tiup cluster display tidb-test
启动集群:
安全启动:
tiup cluster start tidb-test --init
普通启动:
tiup cluster start tidb-test
----初始化topology.yaml有问题,导致启动失败的情形下,修改后要销毁之前的集群才能重新部署生效
销毁集群:tiup cluster destroy tidb-test -y
重新部署:tiup cluster deploy tidb-test v7.1.3 ./topology.yaml --user root -p
再次启动集群
------配置正常的情况下不用这段
验证集群运行状态:
tiup cluster display tidb-test
访问数据库:
navicat连接数据库,ip,root,端口4000,密码普通启动无,安全启动看提示
停止集群:
tiup cluster stop tidb-test
相关文章:

TiDB离线部署、Tiup部署TiDB
先做tidb准备工作: 部署 TiDB 前的环境检查操作:TiDB 环境与系统配置检查 | PingCAP 文档中心 1.查看数据盘 fdisk -l (2,3)本人的分区已经是 ext4 文件系统不用分区,具体官方文档的分区: 4.查看数据盘…...
10GBase-T万兆电口模块助力数据中心实现高效数据传输
10GBase-T万兆电口模块一种高速、高效的网络连接解决方案,具有快速传输速度和稳定可靠的特点。它可以在数据中心中广泛应用,提供出色的网络性能和可扩展性,为数据中心的发展做出了重要的贡献。 一、10GBase-T万兆电口模块的特点与优势 高速传…...
使用Docker中部署GitLab 避坑指南
在容器化的世界中,Docker已经成为了我们部署和管理应用程序的首选工具。然而,在使用Docker部署GitLab时,我们可能会遇到一些问题,本文将为你提供一份详细的避坑指南。网上的教程有的都没说清楚,或者干脆是错的。摸索了…...

我的NPI项目之设备系统启动(八) -- Android14的GKI2.0开发步骤和注意事项
GKI是什么? Google为什么要推行GKI? GKI全称General Kernel Image。GKI在framework和kernel之间提供了标准接口,使得android OS能够轻松适配/维护/兼容不同的设备和linux kernel。 Google引入GKI的目的是将Framework和Kernel进一步的解耦。因…...

鼠标右键助手专业版 MouseBoost PRO for Mac v3.3.6中文破解
MouseBoost Pro mac版是一款简单实用的鼠标右键助手专业版,MouseBoost Pro for Mac只要轻点你的鼠标右键,就可以激活你想要的各种功能,让你的工作效率大幅度提高,非常好用。 软件下载:MouseBoost PRO for Mac v3.3.6中…...
React学习计划-react-hooks补充
React Hooks 1. 使用hooks理由 高阶组件为了复用,导致代码层级复杂生命周期的复杂 2. useState(保存组件状态) const [state, setstate] useState(initialState)3. useEffect(处理副作用)和useLayoutEffect(同步执行副作用) 使用方式: useEffect(…...

KTV点歌系统vue+springboot音乐歌曲播放器系统
目前现有的KTV点歌系统对于用户而言其在线点歌流程仍然过于繁琐,对于歌曲而言其系统安全性并不能保障。同时整套系统所使用的技术相对较为落后,界面不能动态化展示。相比较于其它同类型网站而言不能体现技术先进性。 1.2 项目目标 KTV点歌系统的后台开发…...

vue video 多个视频切换后视频不显示的解决方法
先说一下我这边的需求是视频需要轮播,一个人员有多个视频,左右轮播是轮播某个人员下的视频,上下切换是切换人员。 vue 代码 <el-carouselindicator-position"none"ref"carousel"arrow"always":interval&qu…...
多态与代码屎山
到底什么是多态呢?多态是面向未来的,比如企业采购为例: 一般分为线上合线下两种, 我们设计一个父类叫做"采购", 里面做一些共通的处理: 申请, 承认, 支付, 购买方式. 然后让各自的子类(线上,线下)实现自己的方法.实际调用过程中传入不同的对象就可以.到此为止项目开…...

Git基本操作(2)
Git基本操作(2) 上交文件之后,git文件的变化git cat-file HEAD指针里面有啥文件被修改git statusgit diff 文件名 版本回退(git reset)撤销回退git reflog 撤销的三种情况还没有addgit checkout -- [file] 已经add还没…...
编程笔记 Golang基础 023 切片
编程笔记 Golang基础 023 切片 一、切片二、定义与初始化三、基本操作四、示例 Go语言中的切片(slices)是基于数组的抽象数据类型,它提供了一种灵活的方式来处理可变长度的数据序列。切片本身不存储任何数据,而是指向底层数组的一…...

qt 软件发布(Windows)
1. 开发环境 QtCreator MSVC编译器 2. 源码编译 生成release或者debug版本的exe可执行文件(x64或x86) 3. windeployqt 打包 ①左下角开始菜单栏找到QT的命令交互对话框,如下图MSVC 2017 64-bit(根据第二步编译的类型选择64位或者32位)。 ②cd 切换到第二步可…...

《汇编语言》- 读书笔记 - 第11章-标志寄存器
《汇编语言》- 读书笔记 - 第11章-标志寄存器 标志寄存器指令与标志位关系11.1 ZF(Zero Flag,零标志位)11.2 PF(Parity Flag,奇偶标志位)11.3 SF(Sign Flag,符号标志位)处…...

1.QT简介(介绍、安装,项目创建等)
1. QT介绍 Qt(官方发音 [kju:t])是一个跨平台的C开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序 Qt 是纯 C 开发的,正常情况下需要先学习C语言、然后在学习C然后才能使用…...

【服务器】服务器推荐
一、引言 在数字世界的浪潮中,服务器作为数据存储和处理的基石,其重要性不言而喻。而在这个繁星点点的市场中,雨云以其独特的优势和超高的性价比,逐渐成为众多企业和个人的首选。今天,就让我带你走进雨云的世界&#…...

信号系统之线性图像处理
1 卷积 图像卷积的工作原理与一维卷积相同。例如,图像可以被视为脉冲的总和,即缩放和移位的delta函数。同样,线性系统的特征在于它们如何响应脉冲。也就是说,通过它们的脉冲响应。系统的输出图像等于输入图像与系统脉冲响应的卷积…...

uniapp腾讯地图JavaScript Api,H5端和原生APP端可用
因项目需要,在uniapp中集成使用腾讯地图,为了方便维护,希望通过一套代码实现H5和APP同时可用。H5显示相对简单,APP端比较麻烦,记录下实现过程 一、集成步骤 1.使用 renderjs script标签使用renderjs,因为…...

MyBatisPlus:PG数组类型自动映射问题
引言: PostGreSQL数据库提供了丰富的数据类型,通过查看官网文档,我们也可以发现,PG也提供了对数组类型的支持。 但是在实际开发中,我们通常是使用MyBatis/MyBatisPlus这种半自动ORM映射框架来实现数据库/表数据基本的增删改查,以及其它操作。那么,问题来了,如何…...

Data-Shape制作UI节点简介
很多小伙伴对于Data-Shape制作简单的UI都是似懂非懂,群里很多小伙伴也总是询问相关的问题,那么,今天我就简单举几个例子,专门介绍下Data-Shape创建简单UI的教程。 首先,本次教程,使用的是Data-Shape 2021.…...

kubernetes负载均衡部署
目录 1.新master节点的搭建 对master02进行初始化配置(192.168.88.31) 将master01的配置移植到master02 修改master02配置文件 2.负载均衡的部署 两台负载均衡器配置nginx 部署keepalived服务 所有node节点操作 总结 实验准备: k8s…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...

2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...