当前位置: 首页 > 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…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 原创笔记&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;《数据结构第4章 数组和广义表》…...

路由基础-路由表

本篇将会向读者介绍路由的基本概念。 前言 在一个典型的数据通信网络中&#xff0c;往往存在多个不同的IP网段&#xff0c;数据在不同的IP网段之间交互是需要借助三层设备的&#xff0c;这些设备具备路由能力&#xff0c;能够实现数据的跨网段转发。 路由是数据通信网络中最基…...

李沐--动手学深度学习--GRU

1.GRU从零开始实现 #9.1.2GRU从零开始实现 import torch from torch import nn from d2l import torch as d2l#首先读取 8.5节中使用的时间机器数据集 batch_size,num_steps 32,35 train_iter,vocab d2l.load_data_time_machine(batch_size,num_steps) #初始化模型参数 def …...

OpenHarmony标准系统-HDF框架之I2C驱动开发

文章目录 引言I2C基础知识概念和特性协议&#xff0c;四种信号组合 I2C调试手段硬件软件 HDF框架下的I2C设备驱动案例描述驱动Dispatch驱动读写 总结 引言 I2C基础知识 概念和特性 集成电路总线&#xff0c;由串网12C(1C、12C、Inter-Integrated Circuit BUS)行数据线SDA和串…...