WiFi万能钥匙鲲鹏服务器部署 TiDB 集群实战指南

news2025/7/27 13:51:51

作者: TiDBer_yangxi 原文来源: https://tidb.net/blog/15a234d0

一、环境准备

1. 硬件要求

  • 服务器架构 :鲲鹏服务器(ARM架构),TiDB 官方明确支持 ARM 架构服务器部署
  • 推荐配置 (生产环境):
    • TiDB节点 :16核+ / 32GB+ 内存 / SAS 硬盘 / 万兆网卡
    • PD节点 :4核+ / 8GB+ 内存 / SSD 硬盘 / 万兆网卡
    • TiKV节点 :8核+ / 32GB+ 内存 / SSD 硬盘(建议 NVMe)

2. 操作系统

  • 版本信息
NAME="openEuler"
VERSION="24.03 (LTS-SP1)"
ID="openEuler"
VERSION_ID="24.03"
PRETTY_NAME="openEuler 24.03 (LTS-SP1)"
ANSI_COLOR="0;31"
  • 需完成以下系统配置

    • 将部署目标机器数据盘格式化成 ext4 文件系统,挂载时添加 nodelalloc noatime 挂载参数

    • 检测及安装 NTP 服务

    • 创建部署用户tidb,并设置免密sudo,以及ssh免密互信

二、集群部署

使用 TiUP 自动化部署(推荐)

------我这里是联网部署,如果是离线的请参考官方制作离线镜像)

  • tiup安装部署
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
source .bash_profile
which tiup
tiup cluster
tiup update --self && tiup update cluster
tiup --binary cluster
  • tidb集群部署
version=v8.5.1
tiup mirror clone tidb-community-server-${version}-linux-arm ${version} --os=linux --arch=arm64
cd tidb-community-server-v8.5.1-linux-arm/
bash local_install.sh 
source /home/tidb/.bash_profile

创建部署文件topology.yaml 我们目前是在一台鲲鹏的服务器上试用

global:
  user: "tidb"
  ssh_port: 22
  deploy_dir: "/data1/tidb-deploy"
  data_dir: "/data1/tidb-data"
  listen_host: 0.0.0.0
  arch: "arm64"
monitored:
  node_exporter_port: 9100
  blackbox_exporter_port: 9115
  deploy_dir: "/data1/tidb-deploy/monitored-9100"
  data_dir: "/data1/tidb-data/monitored-9100"
  log_dir: "/data1/tidb-deploy/monitored-9100/log"

server_configs:
  tidb:
    log.level: "warn"
    log.file.max-days: 7
    log.slow-threshold: 300
    max-index-length: 12288
    mem-quota-query: 5368709120
    performance.txn-total-size-limit: 5368709120
    prepared-plan-cache.enabled: true
  tikv:
    log.level: "warn"
    storage.block-cache.capacity: 30GB
  pd:
    replication.location-labels:
        - host
pd_servers:
  - host: xx.x.xx.xx
    name: "pd-1"
    deploy_dir: "/data1/tidb-deploy/pd-2379"
    data_dir: "/data1/tidb-data/pd-2379"
    log_dir: "/data1/tidb-deploy/pd-2379/log"
tidb_servers:
  - host: xx.x.xx.xx
    port: 4000
    status_port: 10080
    deploy_dir: "/data1/tidb-deploy/tidb-4000"
    log_dir: "/data1/tidb-deploy/tidb-4000/log"
tikv_servers:
  - host: xx.x.xx.xx
    port: 20160
    status_port: 20180
    deploy_dir: "/data2/tidb-deploy/tikv-20160"
    data_dir: "/data2/tidb-data/tikv-20160"
    log_dir: "/data2/tidb-deploy/tikv-20160/log"
    config:
      log.level: warn
tiflash_servers:
  - host: xx.x.xx.xx
    ssh_port: 22
    tcp_port: 9000
    flash_service_port: 3930
    flash_proxy_port: 20170
    flash_proxy_status_port: 20292
    metrics_port: 8234
    deploy_dir: /data3/tidb-deploy/tiflash-9000
    data_dir: /data3/tidb-data/tiflash-9000
    log_dir: /data3/tidb-deploy/tiflash-9000/log
kvcdc_servers:
  - host: xx.x.xx.xx
    ssh_port: 22
    port: 8600
    data_dir: "/data1/tidb-data/tikv-cdc-8600"
    log_dir: "/data1/tidb-deploy/tikv-cdc-8600/log"
monitoring_servers:
  - host: xx.x.xx.xx
    deploy_dir: "/data1/tidb-deploy/prometheus-8249"
    data_dir: "/data1/tidb-data/prometheus-8249"
    log_dir: "/data1/tidb-deploy/prometheus-8249/log"
grafana_servers:
  - host: xx.x.xx.xx
    deploy_dir: "/data1/tidb-deploy/grafana-3000"
alertmanager_servers:
  - host: xx.x.xx.xx
    deploy_dir: "/data1/tidb-deploy/alertmanager-9093"
    data_dir: "/data1/tidb-data/alertmanager-9093"
    log_dir: "/data1/tidb-deploy/alertmanager-9093/log"
    config_file: "/data1/tidb-deploy/alertmanager-9093/bin/alertmanager/alertmanager.yml"

安装集群并启动

tiup cluster check ./topology.yaml --user tidb
tiup cluster check ./topology.yaml --apply --user tidb
sudo yum install numactl
tiup cluster check ./topology.yaml --user tidb

2025-05-29_100542.jpg

tiup cluster deploy tidb-test v8.5.1 ./topology.yaml --user tidb
tiup cluster start tidb-test --init

三、集群验证

1. 状态检查

tiup cluster display tidb-test

2025-05-28_174422.jpg

2. 基础功能测试

  • 安装一个mysql客户端
sudo dnf update
sudo dnf install mysql

通过 MySQL 客户端连接

mysql -h xx.x.xx.xx -P 4000 -u root -pxxx
-- 创建测试数据
CREATE DATABASE test;
USE test;
CREATE TABLE user (id INT PRIMARY KEY, name VARCHAR(20));
INSERT INTO user VALUES (1, '鲲鹏用户');
SELECT * FROM user;


-- 创建 TiFlash 副本(列存引擎)
ALTER TABLE user SET TIFLASH REPLICA 1;

四、常见问题解决

问题现象 解决方案
ARM 架构兼容性警告 确认 TiDB 版本 ≥ v5.0(原生支持 ARM)
PD 节点选举异常 检查 NTP 时间同步(偏差需 ≤500ms)
TiKV 存储性能不足 调整 rocksdb.max-background-jobs 参数

五、最佳实践建议

  • 网络优化 :建议使用 RDMA 网络(鲲鹏服务器优势)降低 TiKV 延迟

  • 监控体系 :集成 Prometheus + Grafana(自动部署)监控 QPS/延迟/存储水位

  • 备份策略 :使用 cdc同步数据到备份集群,保证数据安全

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2397239.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue 核心技术与实战智慧商城项目Day08-10

温馨提示:这个黑马的视频在b占可以找到,里面有完整的教学过程 然后这个项目有完整的代码,我已经上传了,如果审核成功大家就可以看了,但是需要审核多久我也不是很确定 1.项目演示 2. 项目收获 3. 创建项目 4. 调整初始化…

TCP/IP协议精华总结pdf分享

hi ,大家好,应小伙伴们的要求,上次分享了个人的一些学习和职场经验,其中网络协议PDF文档是我之前学习协议的时候总结一些精华知识,网络属于基本功,是互联网必备知识,我深信掌握好核心20%知识&am…

⚡️ Linux grep 命令参数详解

⚡️ Linux grep 用法及参数详解 📘 1. grep 简介 grep 是 Linux/Unix 系统中用于文本搜索的命令,其全称为 Global Regular Expression Print,意为全局正则表达式打印器。 它根据给定的 模式(pattern) 对文件或标准…

2025年第三届CCF·夜莺开源创新论坛通知

点击蓝字 关注我们 CCF Opensource Development Committee 01 大会简介 由中国计算机学会主办、CCF开源发展委员会及夜莺开源社区承办的第三届CCF夜莺开源创新论坛拟于2025年7月4日在北京召开。本次论坛以“AI 加速可观测”为主题,汇聚了开源夜莺核心开发团队&#…

GMDCMonitor企业版功能分享0602

企业版包含了拓扑中心、签退中心、知识库、通知渠道配置、平台自定义,这5个功能 1)拓扑中心 拓扑中心绘制的时候需要注意2点: 1)要先选择 “矩形区域” 或 “圆形区域” 来添加各个背景区域,同时录入区域尺寸&#x…

Warm-Flow发布1.7.3 端午节(设计器流和流程图大升级)

Warm-Flow发布1.7.3 端午节(设计器流和流程图大升级) 更新内容项目介绍功能思维导图演示地址官网Warm-Flow视频 更新内容 [feat] 新版流程图通过前端渲染[perf] 美化流程设计器ui[feat] 办理人权限处理器,新增办理人转换接口,比如…

【存储基础】SAN存储基础知识

文章目录 1. 什么是SAN存储?2. SAN存储组网架构3. SAN存储的主要协议SCSI光纤通道(FC)协议iSCSIFCoENVMe-oFIB 4. SAN存储的关键技术Thin Provision:LUN空间按需分配Tier:分级存储Cache:缓存机制QoS&#x…

2025年ESWA SCI1区TOP,改进成吉思汗鲨鱼算法MGKSO+肝癌疾病预测,深度解析+性能实测

1.摘要 本文针对肝癌(HCC)早期诊断难题,提出了一种基于改进成吉思汗鲨鱼优化算法(MGKSO)的计算机辅助诊断系统。由于HCC在早期症状不明显且涉及高维复杂数据,传统机器学习方法易受噪声和冗余特征干扰。为提…

Spark-TTS: AI语音合成的“变声大师“

嘿,各位AI爱好者!还记得那些机器人般毫无感情的合成语音吗?或者那些只能完全模仿但无法创造的语音克隆?今天我要介绍的Spark-TTS模型,可能会让这些问题成为历史。想象一下,你可以让AI不仅说出任何文字&…

WEB3——简易NFT铸造平台之nft.storage

该平台目前已经不太支持免费试用,现在推荐Pinata平台,免费用1GB Pinata | Cryptos file storage 下面web3.storage也可以用,但是需要你有可以交易的外币卡 w3up console 🧠 1. nft.storage 是什么? https://nft.stor…

一元函数积分

1. 不同名函数积分 2.三角函数有理式

6年“豹变”,vivo S30系列引领手机进入场景“体验定义”时代

出品 | 何玺 排版 | 叶媛 5月29日晚,备受用户期待的vivo S30系列如约而至。 相比前几代S系列产品,S30系列变化显著,堪称“豹变”。首先,其产品打造思路发生了质变,产品体验更好,综合竞争力更为强。其次&a…

linux驱动开发(1)-内核模块

内核模块 模块最大的好处是可以动态扩展应用程序的功能而无须重新编译链接生成新的应用程序镜像,在微软的Windows系统上动态链接库DLL(Dynamic Link Library),Linux系统上的共享库so(shared object)文件的…

AI产品风向标:从「工具属性」到「认知引擎」的架构跃迁​

近年来,人工智能正在改变法律行业的游戏规则。从最初的“工具属性”——帮律师干些重复的杂活儿,到如今逐渐变身为“认知引擎”——能够理解法律逻辑、分析案例,法律AI产品正在迎来一场华丽的转身。这篇文章将带你一探究竟,看看这…

前端八股之CSS

CSS 盒子模型深度解析与实战 一、盒子模型核心概念 Box-sizing CSS 中的 box-sizing 属性定义了引擎应该如何计算一个元素的总宽度和总高度 语法: box-sizing: content-box|border-box|inherit:content-box 默认值,元素的 width/height 不包含paddi…

微服务-Sentinel

目录 背景 Sentinel使用 Sentinel控制台 Sentinel控制规则 Sentinel整合OpenFeign 背景 在微服务项目架构中,存在多个服务相互调用场景,在某些情况下某个微服务不可用时,上游调用者若一直等待,会产生资源的消耗,极端情…

MySQL垂直分库(基于MyCat)

参考资料: 参考视频 参考博客 Mycat基本部署 视频参考资料:链接: https://pan.baidu.com/s/1xT_WokN_xlRv0h06b6F3yg 提取码: aag3 概要: 本文的垂直分库,全部是基于前文部署的基本架构进行的 垂直分库: 垂直分库…

Rust 变量与可变性

文章目录 变量与可变性常量遮蔽(Shadowing) 变量与可变性 Rust中变量默认是不可变的,这是 Rust 鼓励你编写更安全、易于并发代码的众多方式之一。不过,你仍然可以选择让变量可变。让我们来探讨 Rust 为什么鼓励你优先使用不可变性…

深入理解 C++ 中的 list 容器:从基础使用到模拟实现

一、list 的底层数据结构与核心特性 1.1 双向循环链表的物理结构 节点定义&#xff1a;每个节点包含三个部分 template <typename T> struct ListNode {T data; // 存储的数据ListNode* prev; // 指向前驱节点的指针ListNode* next; // 指向后继节点的指针L…

状态机实现文件单词统计

系统如何查找可执行文件 默认&#xff1a;在PATH路径下寻找文件文件下 执行当前目录下文件&#xff1a; ./&#xff1a;指定文件目录是当前目录 ./count:执行当前目录文件 编译.c文件为运行文件 gcc -o count 0voice.c #将0voice.c编译为名字count 为什么主函数要那么写&a…