1 集群部署
1.1 环境要求
1.1.1 操作系统建议配置
TiDB 作为一款开源分布式 NewSQL 数据库,可以很好的部署和运行在 Intel 架构服务器环境、ARM 架构的服务器环境及主流虚拟化环境,并支持
Linux 操作系统平台 | 版本 |
Red Hat Enterprise Linux | 7.3 及以上 |
CentOS | 7.3 及以上 |
Oracle Enterprise Linux | 7.3 及以上 |
Ubuntu LTS | 16.04 及以上 |
1.1.2 服务器建议配置
TiDB 支持部署和运行在 Intel x86-64 架构的 64 位通用硬件服务器平台或者 ARM 架构的硬件服务器平台。对于开发,测试,及生产环境的
开发及测试环境
组件 | CPU | 内存 | 本地存储 | 网络 | 实例数量(最低要求) |
TiDB | 8 核+ | 16 GB+ | 无特殊要求 | 千兆网卡 | 1(可与 PD 同机器) |
PD | 4 核+ | 8 GB+ | SAS, 200 GB+ | 千兆网卡 | 1(可与 TiDB 同机器) |
TiKV | 8 核+ | 32 GB+ | SSD, 200 GB+ | 千兆网卡 | 3 |
TiFlash | 32 核+ | 64 GB+ | SSD, 200 GB+ | 千兆网卡 | 1 |
TiCDC | 8 核+ | 16 GB+ | SAS, 200 GB+ | 千兆网卡 | 1 |
生产环境
组件 | CPU | 内存 | 硬盘类型 | 网络 | 实例数量(最低要求) |
TiDB | 16 核+ | 32 GB+ | SAS | 万兆网卡(2 块最佳) | 2 |
PD | 4核+ | 8 GB+ | SSD | 万兆网卡(2 块最佳) | 3 |
TiKV | 16 核+ | 32 GB+ | SSD | 万兆网卡(2 块最佳) | 3 |
TiFlash | 48 核+ | 128 GB+ | 1 or more SSDs | 万兆网卡(2 块最佳) | 2 |
TiCDC | 16 核+ | 64 GB+ | SSD | 万兆网卡(2 块最佳) | 2 |
监控 | 8 核+ | 16 GB+ | SAS | 千兆网卡 | 1 |
1.2 环境准备
准备一台部署主机,确保其软件满足需求:
- 推荐安装 CentOS 7.3 及以上版本
- Linux 操作系统开放外网访问,用于下载 TiDB 及相关软件安装包
最小规模的 TiDB 集群拓扑
实例 | 个数 | IP | 配置 |
TiKV | 3 | 192.168.10.30 | 避免端口和目录冲突 |
TiDB | 1 | 192.168.10.30 | 默认端口 全局目录配置 |
PD | 1 | 192.168.10.30 | 默认端口 全局目录配置 |
TiFlash | 1 | 192.168.10.30 | 默认端口 全局目录配置 |
Monitoring & Grafana | 1 | 192.168.10.30 | 默认端口 全局目录配置 |
1.3 安装TiUP
1.3.1 什么是TiUP
从 TiDB 4.0 版本开始,TiUP 作为新的工具,承担着包管理器的角色,管理着 TiDB 生态下众多的组件,如 TiDB、PD、TiKV 等。用户想要运
1.3.2 安装TiUP组件
使用普通用户登录中控机,以 tidb
用户为例,后续安装 TiUP 及集群管理操作均通过该用户完成
TiUP 安装过程十分简洁,无论是 Darwin 还是 Linux 操作系统,执行一行命令即可安装成功:
[root@linux30 ~]# curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
该命令将 TiUP 安装在 `$HOME/.tiup` 文件夹下,之后安装的组件以及组件运行产生的数据也会放在该文件夹下。同时,它还会自动将 `$HOME/.tiup/bin` 加入到 Shell Profile 文件的 PATH 环境变量中,这样你就可以直接使用 TiUP 了。
1.3.3 配置TiUP环境
重新声明全局环境变量
[root@linux30 tidb]# source /root/.bash_profile
1.3.4 检查TiUP 工具是否安装
[root@linux30 tidb]# which tiup /root/.tiup/bin/tiup
1.3.5 安装 cluster 组件
[root@linux30 tidb]# tiup cluster
1.3.6 升级cluster组件
如果机器已经安装 TiUP cluster,需要更新软件版本
[root@linux30 tidb]# tiup update --self && tiup update cluster
预期输出 “Update successfully!”
字样。
1.4 编辑部署文件
请根据不同的集群拓扑,编辑 TiUP 所需的集群初始化配置文件。
1.4.1 常见的部署场景
最小拓扑架构
最基本的集群拓扑,包括 tidb-server、tikv-server、pd-server,适合 OLTP 业务。
增加 TiFlash 拓扑架构
包含最小拓扑的基础上,同时部署 TiFlash。TiFlash 是列式的存储引擎,已经逐步成为集群拓扑的标配。适合 Real-Time HTAP 业务。
增加 TiCDC 拓扑架构
包含最小拓扑的基础上,同时部署 TiCDC。TiCDC 是 4.0 版本开始支持的 TiDB 增量数据同步工具,支持多种下游 (TiDB/MySQL/MQ)。相比于
增加 TiDB Binlog 拓扑架构
包含最小拓扑的基础上,同时部署 TiDB Binlog。TiDB Binlog 是目前广泛使用的增量同步组件,可提供准实时备份和同步功能。
增加 TiSpark 拓扑架构
包含最小拓扑的基础上,同时部署 TiSpark 组件。TiSpark 是 PingCAP 为解决用户复杂 OLAP 需求而推出的产品。TiUP cluster 组件对
混合部署拓扑架构
适用于单台机器,混合部署多个实例的情况,也包括单机多实例,需要额外增加目录、端口、资源配比、label 等配置。
1.4.2 单机极简部署
部署主机软件和环境要求:
- 部署需要使用部署主机的 root 用户及密码
- 部署主机关闭防火墙或者开放 TiDB 集群的节点间所需端口
单机极简拓扑
实例 | IP | 开放端口 |
grafana | 192.168.10.30 | 3000 |
pd | 192.168.10.30 | 2379/2380 |
prometheus | 192.168.10.30 | 9090 |
tidb | 192.168.10.30 | 4000/10080 |
tiflash | 192.168.10.30 | 9000/8123/3930/20170/20292/8234 |
tikv | 192.168.10.30 | 20160/20180 |
tikv | 192.168.10.30 | 20161/20181 |
tikv | 192.168.10.30 | 20162/20182 |
编辑配置文件
按下面的配置模板,编辑配置文件,命名为
topo.yaml
user: "tidb"
:表示通过tidb
系统用户(部署会自动创建)来做集群的内部管理,默认使用 22 端口通过 ssh 登录目标机器replication.enable-placement-rules
:设置这个 PD 参数来确保 TiFlash 正常运行host
:设置为本部署主机的 IP
# # Global variables are applied to all deployments and used as the default value of # # the deployments if a specific deployment value is missing. global: user: "tidb" ssh_port: 22 deploy_dir: "/opt/tidb/tidb-deploy" data_dir: "/opt/tidb/tidb-data" # # Monitored variables are applied to all the machines. monitored: node_exporter_port: 9100 blackbox_exporter_port: 9115 server_configs: tidb: log.slow-threshold: 300 tikv: readpool.storage.use-unified-pool: false readpool.coprocessor.use-unified-pool: true pd: replication.enable-placement-rules: true replication.location-labels: ["host"] tiflash: logger.level: "info" pd_servers: - host: 192.168.10.30 tidb_servers: - host: 192.168.10.30 tikv_servers: - host: 192.168.10.30 port: 20160 status_port: 20180 config: server.labels: { host: "logic-host-1" } - host: 192.168.10.30 port: 20161 status_port: 20181 config: server.labels: { host: "logic-host-2" } - host: 192.168.10.30 port: 20162 status_port: 20182 config: server.labels: { host: "logic-host-3" } tiflash_servers: - host: 192.168.10.30 monitoring_servers: - host: 192.168.10.30 grafana_servers: - host: 192.168.10.30
1.5 执行集群部署命令
1.5.1 命令格式
tiup cluster deploy <cluster-name> <tidb-version> ./topo.yaml --user root -p
参数解释
- 参数
<cluster-name>
表示设置集群名称 - 参数
<tidb-version>
表示设置集群版本,可以通过tiup list tidb
命令来查看当前支持部署的 TiDB 版本 - 参数:
--use.r root
通过 root 用户登录到目标主机完成集群部署,该用户需要有 ssh 到目标机器的权限,并且在目标机器有 sudo 权限。也可以用其他有 ssh 和 sudo 权限的用户完成部署。
1.5.2 检查TiDB最新版本
可以通过执行 tiup list tidb
来查看 TiUP 支持的版本
[root@linux30 tidb]# tiup list tidb
经过执行发现 可用的TiDB版本有 v5.3.0
1.5.3 执行部署命令
[root@linux30 tidb]# tiup cluster deploy tidb-cluster 5.3.0 ./topo.yaml --user root -p
下面输入y
继续后输入密码进行安装界面
进入安装界面,等待安装即可
如果出现
deployed successfully
表示部署成功,集群名称是tidb-cluster
1.5.4 启动集群
[root@linux30 tidb]# tiup cluster start tidb-cluster
1.5.5 查看节点状态
[root@linux30 tidb]# tiup cluster display tidb-cluster
所有节点都是Up状态说明都已经启动就绪了
2. 测试TiDB集群
2.1 Mysql连接集群
TiDB的连接端口默认是4000, 密码是空,可用使用Mysql客户端以及第三方工具进行连接
2.1.1 安装MySql客户端
yum -y install mysql
MySql客户端连接
访问 TiDB 数据库,密码为空
[root@linux30 tidb]# mysql -uroot -p -P 4000 -h 192.168.10.30
2.1.2 第三方客户端访问Mysql
使用SQLyog访问TiDB
2.1.2.1 创建TiDB连接
连接后就可以操作数据库了
2.2 访问Grafana监控
通过 http://192.168.10.30:3000 访问集群 Grafana 监控页面,默认用户名和密码均为 admin。
2.3 访问Dashboard
通过 http://192.168.10.30:2379/dashboard 访问集群 TiDB Dashboard监控页面,默认用户名为 root,密码为空。
2.4 查看集群列表
[root@linux30 tidb]# tiup cluster list
2.5 查看集群拓扑
[root@linux30 tidb]# tiup cluster display tidb-cluster