TiDB小型集群部署实践

写在前面

其实蛮久前就开始关注TiDB,当时还是刚推出初代正式版。它带着NewSQL的新潮头衔、天然支持分布式又兼容MySQL协议(无需分表分库),让我蠢蠢欲动。现不少互联网(360、小米、知乎、网易游戏、美团等)、金融(中国银行、光大银行、翼支付等)企业将其纳入生产环境,社区也愈见庞大完善,更是让我按捺不住要体验一番。恰逢某云双十一有低至 0.6 折的云主机,我订了四台用来搭建测试集群。

目前 TiDB 最新版本为4.0.8,提供TiUP工具大大降低集群运维成本👍。那废话少说,开始动手吧!

准备工作

四台主机网络互通(同一安全组)命名为M01、M02、M03、M04,均为CentOS8.0 64位操作系统,内存2G,其中M01为中控机。

集群总览

名称IP集群角色
M01192.168.1.17SSH管理入口、PD、TiDB Server、集群监控
M02192.168.1.46TiKV
M03192.168.1.169TiKV
M04192.168.1.51TiKV

网络结构
总览
备注

  • M01作为集群唯一入口有且仅对外提供了仅限私钥登录的SSH服务(其他机器均不开放任何端口)
  • SSH服务端口已改为 20221
  • 关于 TiDB 各模块间的介绍详见整体架构
  • 本文为数据库最简部署,不涉及 TiFlash、TiCDC、TiDB Binlog、TiSpark 等组件
  • 主机间我已配置无密登录
  • 为安全起见,访问集群功能(如数据库访问、集群状态面板、集群监控等)均走基于SSH的端口转发(此处不详述原理,请自行查阅资料)
  • 本文中使用的 SSH 客户端工具为 MobaXterm(免费版)

集群部署

安装 TiUP

登录中控机 M01(云主机若购买了额外云盘,可能会出现未挂载的情况,此时需要人工先将云盘挂载),安装TiUP

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
# 重新声明全局环境变量
source .bash_profile
# 安装 cluster 组件
tiup cluster
# 等待完成后验证结果,显示如/root/.tiup/components/cluster/v1.2.3/tiup-cluster 字样即为成功
tiup --binary cluster

集群配置文件

配置文件名为topology.yaml,本文使用的为极简配置(只修改部分阈值、端口),存放路径:/data/topology.yaml

global:
  user: "tidb"
  ssh_port: 20221
  deploy_dir: "/data/tidb-deploy"
  data_dir: "/data/tidb-data"

server_configs:
  tidb:
	# Queries with execution time greater than this value will be logged. (Milliseconds)
    log.slow-threshold: 1000
  tikv:
	# 线程池大小,参数默认取值为机器线程数的 80%,此处修改为 1
    readpool.unified.max-thread-count: 1

pd_servers:
  - host: 192.168.1.17
    client_port: 22379

tidb_servers:
  - host: 192.168.1.17

tikv_servers:
  - host: 192.168.1.46
  - host: 192.168.1.51
  - host: 192.168.1.169

monitoring_servers:
  - host: 192.168.1.17

grafana_servers:
  - host: 192.168.1.17
    port: 23000

附录

  1. topology.yaml 完整配置项
  2. tidb 相关配置
  3. tikv 相关配置
  4. PD 相关配置

部署

# 这里使用 root 用户进行部署(若更换为其他用户,需注意应具备ssh及sudu权限)
# 集群名称为 tidb
tiup cluster deploy tidb v4.0.8 /data/topology.yaml --user root

TiUP 将列出集群相关信息(如下图),无问题即可按下y,接着会自动下载资源、初始化各节点(若未配置无密登录会报错而中断)、复制文件,最后集群部署完成。
执行部署
通过tiup cluster display tidb可以显示集群相关信息。
在这里插入图片描述
至此,集群已经成功运行,可以对外提供服务。不得不感慨其便利性💐。

集群管理

本章节利用SSH隧道访问集群相关服务,使用的是本地端口转发(每个服务搭建一条隧道,理论上动态转发更灵活但未实践过,如有了解的朋友欢迎留言交流💬)

# 本地端口转发用法
ssh -L {本地端口}:{远程主机}:{远程端口} root@M01

本文使用MobaXterm提供的工具搭建端口转发,创建端口转发如下图所示(图形化很好理解🤪):
在这里插入图片描述
建立三个端口转发规则,分别对应集群Dashboard、数据库、集群监控。
在这里插入图片描述

🔒修改数据库密码

数据库管理员账户为root,默认无需密码(裸奔😂)

改密方案跟MySQL一样,登录目标服务器(MySQL协议)修改 mysql.user 表即可。

集群状态

访问localhost:22379即可打开集群Dashboard,使用数据库帐密登录

DASHBOARD

集群监控

访问localhost:23000,默认帐密为 admin/admin(强烈要求初次登录后修改密码)

GRAFANA

结束语

整个过程虽有小磕碰但也顺利完成,再次提醒一定要按照官方文档来走,很多问题都能通过查阅文档来解决。

目前集群使用正常(就当一个MySQL来用😂),有后续心得再跟大家分享,感谢阅读。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
TiDB集群环境的部署可以通过使用TiUP来完成。TiUP是TiDB 4.0版本引入的集群运维工具,它提供了集群管理组件TiUP cluster,可以用于管理TiDB集群部署、启动、关闭、销毁、弹性扩缩容、升级等工作。通过执行TiUP命令,可以输出当前通过TiUP cluster管理的所有集群信息,包括集群名称、部署用户、版本、密钥信息等。 具体的部署步骤如下: 1. 安装TiUP组件:执行TiUP命令进行组件安装。 2. 创建集群配置文件:使用TiUP cluster命令创建一个新的集群配置文件。 3. 配置集群参数:根据需求修改集群配置文件中的参数,例如副本数、节点数量等。 4. 部署TiDB集群:执行TiUP cluster命令进行集群部署。 5. 检查部署情况:执行TiUP cluster命令检查部署TiDB集群情况。 通过以上步骤,可以完成TiDB集群环境的部署和配置。使用TiUP作为集群管理工具,可以方便地进行TiDB生态下各个组件的管理和运维工作,极大地降低了管理难度。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [使用 TiUP 部署 TiDB 集群](https://blog.csdn.net/weixin_42241611/article/details/125518329)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [TIDB集群部署](https://blog.csdn.net/qq_21040559/article/details/127716535)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

集成显卡

码字不易,需要您的鼓励😄

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值