TiDB集群部署

(1)、关于TiDB

TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品。
TiDB具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。
TiDB目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。
TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。
ps: 分布式关系型数据库设计的六大目标:横向扩展、强一致性、高可用、 标准SQL与事务模型、云原生、HTAP、生态兼容性。

TiDB在2015年立项,弹性是整个架构设计的核心考量点,所以选择了更为主流的面向未来的计算与存储分离的架构。
TiDB 采用高度分层架构,从逻辑上讲TiDB主要分三层:

1. 支持标准SQL的计算引擎,我们叫TiDB-Server
TiDB是整个数据库的名称,同时TiDB有一个兼容mysql的计算引擎叫TiDB-Server , TiDB-Server以mysql5.7为主,在逐步兼容mysql8.0 包括对mysql的语法、语义、方言、DDL等等。

2. 分布式存储引擎Tikv
TiDB-Server 本身并不存储数据,只是进行计算,实际的数据存储层在Tikv , 目前这个项目已经捐给了CNCF。

3. 负责元信息管理和调度的引擎PD
placement driver 简称PD , 它的功能:
第一,集群的元信息管理,包括分片的分布,拓扑结构等;
第二,分布式事务ID的分配,可以简单理解为全局唯一的序列号授时的服务;
第三,调度中心 ,默认每一个Tikv节点会在一个周期内定向发送相关元信息给PD,包括所在节点的分片数量、Leader数量、最近一份周期内读写吞吐量等。
PD接收后的新数据进行计算,然后发出再平衡调度,比如将部分Region从Region较多的节点调度到较少的节点。
PD是整个集群的大脑, 为了保证全局的高可用性,PD至少是3个节点,通过Raft进行3副本的复制。

(2)、使用 TiUP 部署 TiDB 集群

1、部署前的环境准备
TiDB集群最小部署环境需要3个节点,这里将TiDB Server、PD Server和TiKV放在一台虚机上共3台主机,另外一个主机部署监控节点。

173.16.200.241 TiDB Server、PD Server、TiKV
173.16.200.242 TiDB Server、PD Server、TiKV
173.16.200.243 TiDB Server、PD Server、TiKV
173.16.200.244 中控机、监控

检测及关闭系统SWAP
TiDB运行需要有足够的内存,并且不建议使用swap作为内存不足的缓冲,这会降低性能。因此建议永久关闭系统 swap,并且不要使用 swapoff -a 方式关闭,否则重启机器后该操作会失效。
# echo "vm.swappiness = 0">> /etc/sysctl.conf
# swapoff -a && swapon -a
# sysctl -p

在 173.16.200.241-244 上创建用户tidb并设置sudo权限

# useradd -d /home/tidb tidb
# passwd tidb
# visudo
在 # %wheel ALL=(ALL) NOPASSWD: ALL 下面添加一行:
%tidb ALL=(ALL) NOPASSWD: ALL
保存配置文件即可

TiDB 是一套分布式数据库系统,需要节点间保证时间的同步,从而确保 ACID 模型的事务线性一致性。

2 、在中控机上部署Tiup组件

Tiup是 TiDB 4.0 版本引入的集群运维工具,Tiup cluster 是 TiUP 提供的使用 Golang 编写的集群管理组件,通过 TiUP cluster 组件就可以进行日常的运维工作,包括部署、启动、关闭、销毁、弹性扩缩容、升级 TiDB 集群,以及管理 TiDB 集群参数。
目前 Tiup 可以支持部署 TiDB、TiFlash、TiDB Binlog、TiCDC,以及监控系统。

在中控机上在线部署Tiup组件
在173.16.200.244 上操作

# su - tidb
切换到tidb用户下
$ curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
$ source .bash_profile

3、准备初始化配置文件
在中控机173.16.200.244 上操作
可以通过 $ tiup cluster template > topology.yaml 来生成 topology.yaml文件
根据我们的部署需求进行编辑文件 topology.yaml

常见集群拓扑有:
最小拓扑架构:最基本的集群拓扑,包括 tidb-server、tikv-server、pd-server,适合 OLTP 业务。
增加 TiFlash 拓扑架构: 包含最小拓扑的基础上,同时部署 TiFlash。TiFlash 是列式的存储引擎,已经逐步成为集群拓扑的标配。适合 Real-Time HTAP 业务。

我们选择‘最小拓扑架构’来部署集群。

4、执行部署命令
在中控机173.16.200.244 上操作
$ tiup cluster deploy tidb-cluster v5.3.0 topology.yaml --user tidb -p

以上部署命令中:
通过 Tiup cluster 部署的集群名称为tidb-cluster
可以通过执行 tiup list tidb 来查看 Tiup 支持的最新可用版本
初始化配置文件为 topology.yaml
--user tidb:通过tidb用户登录到目标主机完成集群部署,该用户需要有 ssh 到目标机器的权限,并且在目标机器有 sudo 权限。也可以用其他有 ssh 和 sudo 权限的用户完成部署。
[-i] 及 [-p]:非必选项,如果已经配置免密登录目标机,则不需填写。否则选择其一即可,[-i] 为可登录到目标机的 root 用户(或 --user 指定的其他用户)的私钥,也可使用 [-p] 交互式输入该用户的密码。
预期日志结尾输出会有 Deployed cluster `tidb-test` successfully 关键词,表示部署成功。

5、 启动集群
在中控机173.16.200.244 上操作 , tidb用户模式下
$ tiup cluster start tidb-cluster

6、查看 Tiup 管理的集群情况
Tiup 支持管理多个 TiDB 集群,该命令会输出当前通过 TiUP cluster 管理的所有集群信息,包括集群名称、部署用户、版本、密钥信息等。
在中控机173.16.200.244 上操作, tidb用户模式下
$ tiup cluster list

7、检查部署的 TiDB 集群情况
在中控机173.16.200.244 上操作, tidb用户模式下
例如,执行如下命令检查 tidb-cluster 集群情况:
$ tiup cluster display tidb-cluster
TiDB集群部署
我们可以通过http://173.16.200.244:9090 来访问prometheus监控, 可以通过http://173.16.200.244:3000来访问grafana监控(登录用户admin密码admin) , 可以通过 http://173.16.200.241:2379/dashboard 来访问TiDB的dashboard (默认登录用户root的密码为空)

8、连接 TiDB
可以使用mysql客户端来连接TiDB
# mysql --host 173.16.200.X --port 4000 -u root 可以使用TiDB-server 所在的主机连接到TiDB (数据库的root密码默认为空)。
TiDB集群部署

相关新闻

联系我们

全国服务热线

400-033-9553

电子邮件:admin@example.com
工作时间:09:00-17:00 周一至周五

在线客服
关注微信
关注微信
分享本页
返回顶部