TIDB 搭建过程
1、各个节点简介与环境准备
节点官方说明:https://docs.pingcap.com/zh/tidb/v4.0/tidb-architecture
1.1、节点简介
tidb: 对外暴露MySQL协议的连接endpoint,负责接收客户端的连接,执行SQL解析和优化,最终生成分布式执行计划。
pd: 负责对tikv节点实时数据分析,提供tidb dashboard管控界面,同时会根据tikv节点实时上传的数据分布状态,
下发数据调度命令给具体的tikv节点。建议部署奇数个pd节点。
tikv: 负责存储数据
tiflash: 是一类特殊的存储节点,和普通 TiKV 节点不一样的是,在 TiFlash 内部,数据是以列式的形式进行存储,
主要的功能是为分析型的场景加速。
1.2、环境准备
中控机:负责集群部署与启动过程,中控机须可以访问公网
节点分布:
中控机:192.168.137.3(主机名:local-kvm)
pd: 192.168.137.3
tidb: 192.168.137.3
tiflash: 192.168.137.3
tikv: 192.168.100.63,192.168.100.64,192.168.100.65
[tidb@local-kvm ~]$ ssh-keygen -f /root/.ssh/id_rsa
[tidb@local-kvm ~]$ ssh-copy-id root@所有节点 #使中控机可以无密访问所有节点
2、部署
官方部署手册:https://docs.pingcap.com/zh/tidb/v4.0/production-deployment-using-tiup
2.1、执行如下命令安装 TiUP 工具:
[tidb@local-kvm ~]$ mkdir /data/;cd /data/
[tidb@local-kvm data]$ curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
[root@local-kvm data]# source ~/.bash_profile
[root@local-kvm data]# which tiup
/root/.tiup/bin/tiup
2.2、安装 TiUP cluster 组件
[root@local-kvm data]# tiup cluster
[root@local-kvm data]# tiup cluster list
#!--出现如下信息则说明安装完成,如果没有则执行tiup install cluster进行安装--!#
Starting component `cluster`: /root/.tiup/components/cluster/v1.5.3/tiup-cluster list
Name User Version Path PrivateKey
---- ---- ------- ---- ----------
[root@local-kvm data]#
2.3、更新tiup cluster组件,这一步可忽略操作
# 如果已经安装,则更新 TiUP cluster 组件至最新版本:
[root@local-kvm data]# tiup update --self && tiup update cluster
# 验证当前 TiUP cluster 版本信息。执行如下命令查看 TiUP cluster 组件版本:
[root@local-kvm data]# tiup --binary cluster
/root/.tiup/components/cluster/v1.5.3/tiup-cluster
2.4、开始安装集群
编辑初始化配置文件,一定要看我写的注释
新建一个配置文件 topology.yaml,如果有其他组合场景的需求,请根据多个模板自行调整。
[root@local-kvm data]# cat 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: "/data/tidb-deploy"
data_dir: "/data/tidb-data"
server_configs:
tidb:
binlog.enable: true
binlog.ignore-error: true
pd:
replication.enable-placement-rules: true
# pd提供dashboard界面,默认端口2379
pd_servers:
- host: 192.168.137.3
# tipd提供数据库的连接方式,执行SQL解析和优化,默认端口4000
tidb_servers:
- host: 192.168.137.3
# 数据存储
tikv_servers:
- host: 192.168.100.63
- host: 192.168.100.64
- host: 192.168.100.65
# TiDB 增量数据同步工具,可选,可不选
cdc_servers:
- host: 192.168.100.63
- host: 192.168.100.64
- host: 192.168.100.65
# 部署 TiDB Binlog,可选,可不选
# 注意,drainer_servers需要tidb的密码才登录,但是初始化tidb没有密码,
# 第一次启动集群时,这个服务会启动失败,但tidb服务正常启动,
# 需要手动登录到tidb中新增密码,我的密码为123456
pump_servers:
- host: 192.168.137.3
drainer_servers:
- host: 192.168.137.3
config:
syncer.db-type: "tidb"
syncer.to.host: "192.168.137.3"
syncer.to.user: "root"
syncer.to.password: "123456"
syncer.to.port: 4000
monitoring_servers:
- host: 192.168.137.3
grafana_servers:
- host: 192.168.137.3
alertmanager_servers:
- host: 192.168.137.3
tiflash_servers:
- host: 192.168.137.3
data_dir: /data/tidb-data/tiflash-9000
deploy_dir: /data/tidb-deploy/tiflash-9000
- 开始创建集群,执行如下命令,tidb-test为集群名称,可修改
tiup cluster deploy tidb-test v4.0.14 ./topology.yaml
- tiup相关命令
> tiup cluster list #查看有哪些集群
> tiup cluster start ${cluster-name} #启动集群,tidb-test为上边定义的集群名称
> tiup cluster stop ${cluster-name} #停止集群
> tiup cluster restart ${cluster-name} #重启集群
> tiup cluster display ${cluster-name} #查看集群各个节点的状态
> 启动集群时,如何个别节点没启动成功,则多起几次,display查看到所有的status为up时则启动成功。
> tiup cluster start ${cluster-name} -R pd # -R 只启动 PD 组件
> tiup cluster start ${cluster-name} -N 1.2.3.4:2379,1.2.3.5:2379 # -N 只启动 1.2.3.4 和 1.2.3.5 这两台机器上的 PD 组件:
[root@local-kvm ~]# tiup cluster display tidb-test
Starting component `cluster`: /root/.tiup/components/cluster/v1.5.3/tiup-cluster display tidb-test
Cluster type: tidb
Cluster name: tidb-test
Cluster version: v4.0.14
Deploy user: tidb
SSH type: builtin
Dashboard URL: http://192.168.137.3:2379/dashboard
ID Role Host Ports OS/Arch Status Data Dir Deploy Dir
-- ---- ---- ----- ------- ------ -------- ----------
192.168.137.3:9093 alertmanager 192.168.137.3 9093/9094 linux/x86_64 Up /data/tidb-data/alertmanager-9093 /data/tidb-deploy/alertmanager-9093
192.168.100.63:8300 cdc 192.168.100.63 8300 linux/x86_64 Up /data/tidb-data/cdc-8300 /data/tidb-deploy/cdc-8300
192.168.100.64:8300 cdc 192.168.100.64 8300 linux/x86_64 Up /data/tidb-data/cdc-8300 /data/tidb-deploy/cdc-8300
192.168.100.65:8300 cdc 192.168.100.65 8300 linux/x86_64 Up /data/tidb-data/cdc-8300 /data/tidb-deploy/cdc-8300
192.168.137.3:8249 drainer 192.168.137.3 8249 linux/x86_64 Up /data/tidb-data/drainer-8249 /data/tidb-deploy/drainer-8249
192.168.137.3:3000 grafana 192.168.137.3 3000 linux/x86_64 Up - /data/tidb-deploy/grafana-3000
192.168.137.3:2379 pd 192.168.137.3 2379/2380 linux/x86_64 Up|L|UI /data/tidb-data/pd-2379 /data/tidb-deploy/pd-2379
192.168.137.3:9090 prometheus 192.168.137.3 9090 linux/x86_64 Up /data/tidb-data/prometheus-9090 /data/tidb-deploy/prometheus-9090
192.168.137.3:8250 pump 192.168.137.3 8250 linux/x86_64 Up /data/tidb-data/pump-8250 /data/tidb-deploy/pump-8250
192.168.137.3:4000 tidb 192.168.137.3 4000/10080 linux/x86_64 Up - /data/tidb-deploy/tidb-4000
192.168.137.3:9000 tiflash 192.168.137.3 9000/8123/3930/20170/20292/8234 linux/x86_64 Up /data/tidb-data/tiflash-9000 /data/tidb-deploy/tiflash-9000
192.168.100.63:20160 tikv 192.168.100.63 20160/20180 linux/x86_64 Up /data/tidb-data/tikv-20160 /data/tidb-deploy/tikv-20160
192.168.100.64:20160 tikv 192.168.100.64 20160/20180 linux/x86_64 Up /data/tidb-data/tikv-20160 /data/tidb-deploy/tikv-20160
192.168.100.65:20160 tikv 192.168.100.65 20160/20180 linux/x86_64 Up /data/tidb-data/tikv-20160 /data/tidb-deploy/tikv-20160
Total nodes: 14
3、测试访问
访问tidb数据库,默认初始化没有密码,我加了密码
[root@local-kvm ~]# mysql -h192.168.137.3 -uroot -p -P 4000
Enter password:
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| INFORMATION_SCHEMA |
| METRICS_SCHEMA |
| PERFORMANCE_SCHEMA |
| mysql |
| test |
| tidb_binlog |
+--------------------+
6 rows in set (0.00 sec)
访问dashboard界面
># 查看dashboard的IP端口信息
[root@local-kvm ~]# tiup cluster display tidb-test --dashboard
Starting component `cluster`: /root/.tiup/components/cluster/v1.5.3/tiup-cluster display tidb-test --dashboard
Dashboard URL: http://192.168.137.3:2379/dashboard/