当前位置: 首页 > news >正文

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 多个视频切换后视频不显示的解决方法

先说一下我这边的需求是视频需要轮播&#xff0c;一个人员有多个视频&#xff0c;左右轮播是轮播某个人员下的视频&#xff0c;上下切换是切换人员。 vue 代码 <el-carouselindicator-position"none"ref"carousel"arrow"always":interval&qu…...

多态与代码屎山

到底什么是多态呢?多态是面向未来的,比如企业采购为例: 一般分为线上合线下两种, 我们设计一个父类叫做"采购", 里面做一些共通的处理: 申请, 承认, 支付, 购买方式. 然后让各自的子类(线上,线下)实现自己的方法.实际调用过程中传入不同的对象就可以.到此为止项目开…...

Git基本操作(2)

Git基本操作&#xff08;2&#xff09; 上交文件之后&#xff0c;git文件的变化git cat-file HEAD指针里面有啥文件被修改git statusgit diff 文件名 版本回退&#xff08;git reset&#xff09;撤销回退git reflog 撤销的三种情况还没有addgit checkout -- [file] 已经add还没…...

编程笔记 Golang基础 023 切片

编程笔记 Golang基础 023 切片 一、切片二、定义与初始化三、基本操作四、示例 Go语言中的切片&#xff08;slices&#xff09;是基于数组的抽象数据类型&#xff0c;它提供了一种灵活的方式来处理可变长度的数据序列。切片本身不存储任何数据&#xff0c;而是指向底层数组的一…...

qt 软件发布(Windows)

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

《汇编语言》- 读书笔记 - 第11章-标志寄存器

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

1.QT简介(介绍、安装,项目创建等)

1. QT介绍 Qt&#xff08;官方发音 [kju:t]&#xff09;是一个跨平台的C开发库&#xff0c;主要用来开发图形用户界面&#xff08;Graphical User Interface&#xff0c;GUI&#xff09;程序 Qt 是纯 C 开发的&#xff0c;正常情况下需要先学习C语言、然后在学习C然后才能使用…...

【服务器】服务器推荐

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

信号系统之线性图像处理

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

uniapp腾讯地图JavaScript Api,H5端和原生APP端可用

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

MyBatisPlus:PG数组类型自动映射问题

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

Data-Shape制作UI节点简介

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

kubernetes负载均衡部署

目录 1.新master节点的搭建 对master02进行初始化配置&#xff08;192.168.88.31&#xff09; 将master01的配置移植到master02 修改master02配置文件 2.负载均衡的部署 两台负载均衡器配置nginx 部署keepalived服务 所有node节点操作 总结 实验准备&#xff1a; k8s…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...