TiDB 简介
TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。
环境
注意⚠️防火墙开放相应端口(线上的防火墙不要关闭!),本文基于虚拟机部署,机器都是分配的1核2G,生产环境部署,建议使用 EXT4 类型文件系统的 NVME 类型的 SSD 磁盘存储 TiKV 数据文件。这个配置方案为最佳实施方案,其可靠性、安全性、稳定性已经在大量线上场景中得到证实。
服务器IP | 节点 | 服务 | 防火墙端口 |
172.16.16.131 | node1 | pd_servers、tidb_servers、monitoring_servers、grafana_servers、alertmanager_servers、TiUP | 关闭 |
172.16.16.132 | node2 | pd_servers、tidb_servers | 关闭 |
172.16.16.133 | node3 | pd_servers、tidb_servers | 关闭 |
172.16.16.134 | node4 | tikv_servers | 关闭 |
172.16.16.135 | node5 | tikv_servers | 关闭 |
172.16.16.136 | node6 | tikv_servers | 关闭 |
使用普通用户登录中控机,以tidb
用户为例,后续安装 TiUP 及集群管理操作均通过该用户完成:
执行如下命令安装 TiUP 工具:
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
按如下步骤设置 TiUP 环境变量:
重新声明全局环境变量:
source .bash_profile
确认 TiUP 工具是否安装:
which tiup
安装 TiUP cluster 组件
tiup cluster
如果已经安装,则更新 TiUP cluster 组件至最新版本:
tiup update --self && tiup update cluster
预期输出
“Update successfully!”
字样。验证当前 TiUP cluster 版本信息。执行如下命令查看 TiUP cluster 组件版本:
tiup --binary cluster
初始化配置文件
vi topology.yaml
# # 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: "/tidb-deploy"
data_dir: "/tidb-data"
pd_servers:
- host: 172.16.16.131
- host: 172.16.16.132
- host: 172.16.16.133
tidb_servers:
- host: 172.16.16.131
- host: 172.16.16.132
- host: 172.16.16.133
tikv_servers:
- host: 172.16.16.134
- host: 172.16.16.135
- host: 172.16.16.136
monitoring_servers:
- host: 172.16.16.131
grafana_servers:
- host: 172.16.16.131
alertmanager_servers:
- host: 172.16.16.131
执行部署命令
注意:
通过 TiUP 进行集群部署可以使用密钥或者交互密码方式来进行安全认证:
- 如果是密钥方式,可以通过
-i
或者--identity_file
来指定密钥的路径;- 如果是密码方式,无需添加其他参数,
Enter
即可进入密码交互窗口。
tiup cluster deploy tidb-test v4.0.0 ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
例如: tiup cluster deploy tidb-test v4.0.0 ./topology.yaml --user root -p
然后根据提示输入其他节点服务器密码
以上部署命令中:
- 通过 TiUP cluster 部署的集群名称为
tidb-test
- 部署版本为
v4.0.0
,最新版本可以通过执行tiup list tidb
来查看 TiUP 支持的版本 - 初始化配置文件为
topology.yaml
- –user root:通过 root 用户登录到目标主机完成集群部署,该用户需要有 ssh 到目标机器的权限,并且在目标机器有 sudo 权限。也可以用其他有 ssh 和 sudo 权限的用户完成部署。
- [-i] 及 [-p]:非必选项,如果已经配置免密登陆目标机,则不需填写。否则选择其一即可,[-i] 为可登录到部署机的 root 用户(或 –user 指定的其他用户)的私钥,也可使用 [-p] 交互式输入该用户的密码
预期日志结尾输出会有Deployed cluster `tidb-test` successfully
关键词,表示部署成功。
查看 TiUP 管理的集群情况
tiup cluster list
TiUP 支持管理多个 TiDB 集群,该命令会输出当前通过 TiUP cluster 管理的所有集群信息,包括集群名称、部署用户、版本、密钥信息等:
Starting /home/tidb/.tiup/components/cluster/v1.0.0/cluster list
Name User Version Path PrivateKey
---- ---- ------- ---- ----------
tidb-test tidb v4.0.0 /home/tidb/.tiup/storage/cluster/clusters/tidb-test /home/tidb/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa
检查部署的 TiDB 集群情况
例如,执行如下命令检查tidb-test
集群情况:
tiup cluster display tidb-test
预期输出包括tidb-test
集群中实例 ID、角色、主机、监听端口和状态(由于还未启动,所以状态为 Down/inactive)、目录信息。
启动集群
tiup cluster start tidb-test
预期结果输出Started cluster `tidb-test` successfully
标志启动成功。
验证集群运行状态
- 通过 TiUP 检查集群状态
tiup cluster display tidb-test
预期结果输出,注意 Status 状态信息为Up
说明集群状态正常
- 执行如下命令登录数据库:
- 初始密码为空
mysql -u root -h 172.16.16.131 -P 4000
参考官方文档:https://pingcap.com/docs-cn/stable/production-deployment-using-tiup/