对于企业级和云数据库,除了性能、可用性和功能等常规维度外,一个重要维度就是可管理性,可管理性维度会很深地影响用户实际使用数据库的隐性成本。在最新版本中,TiDB引入了数据放置框架(PlacementRulesInSQL),增加了企业级集群管理组件TiDBEnterpriseManager,开放了智能诊断服务PingCAPClinic的预览,大幅度加强了作为企业级产品的可管理性,与此同时也加入了诸多云原生数据库所需的基础设施。
温故而知新,本文主要介绍构成TiDB可管理性的重要组件之一:TiUP,一款从TiDB4.0版本开始投入使用的TiDB部署工具。
TiUP对于TiDBer来说是日常必备工具,所以这篇文章归类为“温故知新”系列,如果您刚接触TiDB,请先参阅这篇文章:《从马车到电动车,TiDB部署工具变形记》。
环境说明
本文所涉及到的环境、组件版本信息如下:
TiDBv5.4.0
TiUPv1.9.3(-03-24Release)
CentOS7.9
TiUP简介
在各种系统软件和应用软件的安装管理中,包管理器均有着广泛的应用,包管理工具的出现大大简化了软件的安装和升级维护工作。例如,几乎所有使用RPM的Linux都会使用Yum来进行包管理,而Anaconda则可以非常方便地管理python的环境和相关软件包。
从TiDB4.0版本开始,TiUP作为新的工具,承担着包管理器的角色,管理着TiDB生态下众多的组件,如TiDB、PD、TiKV等。用户想要运行TiDB生态中任何组件时,只需要执行TiUP一行命令即可,相比以前,极大地降低了管理难度。
图1-TiUPGitHubCommits趋势
图2-tiup源码行数统计(-03-24)
TiUP已发布两年有余,版本迭代若干次,代码总量翻倍,由上图可以看出代码更新已放缓,TiDBer可放心地在生产环境使用。
再论TiUP组件
作为Ti利器,TiUP可是日常工作必备。下面再来讨论下TiUP的经典组件和常用命令。先将tiup重要命令列举如下,然后再着重讨论。
tiup
tiupenv
tiupstatus
tiupmirror
tiuplist--all--verbose
tiupinstallhello
tiupupdate
tiupplayground
tiupclient
tiupcluster
tiupbenchch(CH-benCHmark)/TPCC(TPC-C)/TPCH(TPC-H)/YCSB(Yahoo!CloudServingBenchmark)
tiupdm
tiupclean
main/cmd/root
tiupmirror
不是每个公司都会把数据库部在公有云上的,即便是在公有云,为了便于版本统一管理,大都会选择自建一个仓库,是为生产库基准版本管理。而对于金融业务更不用多说,那么,如何在内网快速、简洁、有效地搭建和维护仓库,下面做个简单的示例。
首先需要在能连接外网的机器安装TiUP,并克隆官方TiUP仓库:
下载tiup文件,并添加环境变量
mkdir-pv~/.tiup/binwget