首页 > 其他分享 >TiDB介绍和安装

TiDB介绍和安装

时间:2023-08-20 21:13:32浏览次数:36  
标签:tiup TiDB component 介绍 cluster 192.168 tidb 安装

首先 TiDB 是开源分布式关系型数据库,据官方说法它是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库。
很重要的一点是TiDB 兼容 MySQL 5.7 协议和 MySQL 生态等重要特性,对于DBA 和开人员来说学习成本较低。

但是也有以下不兼容的特性:
不支持存MySQL 储过程,函数,触发器,外键
不支持全文索引,空间函数,create table ... as select 用法

在内核设计上,TiDB 分布式数据库将整体架构拆分成了多个模块,各模块之间互相通信,组成完整的 TiDB 系统。对应的架构图如下:

 

TiDB Server:SQL 层,对外暴露 MySQL 协议的连接 endpoint,负责接受客户端的连接,执行 SQL 解析和优化,最终生成分布式执行计划。
TiDB 层本身是无状态的,实践中可以启动多个 TiDB 实例,通过负载均衡组件(如 LVS、HAProxy 或 F5)对外提供统一的接入地址。
客户端的连接可以均匀地分摊在多个 TiDB 实例上以达到负载均衡的效果。
TiDB Server 本身并不存储数据,只是解析 SQL,将实际的数据读取请求转发给底层的存储节点 TiKV(或 TiFlash)。
TiDB 100% 兼容MySQL 5.7 链接协议,支持mysql 客户端链接,workbench 也可以链接。

PD (Placement Driver) Server:整个 TiDB 集群的元信息管理模块,负责存储每个 TiKV 节点实时的数据分布情况和集群的整体拓扑结构。
提供 TiDB Dashboard 管控界面,并为分布式事务分配事务 ID。PD 不仅存储元信息,同时还会根据 TiKV 节点实时上报的数据分布状态,下发数据调度命令给具体的 TiKV 节点,可以说是整个集群的“大脑”。
此外,PD 本身也是由至少 3 个节点构成,拥有高可用的能力。建议部署奇数个 PD 节点。

存储节点
TiKV Server:负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎。存储数据的基本单位是 Region,每个 Region 负责存储一个 Key Range(从 StartKey 到 EndKey 的左闭右开区间)的数据,每个 TiKV 节点会负责多个 Region。
TiKV 的 API 在 KV 键值对层面提供对分布式事务的原生支持,默认提供了 SI (Snapshot Isolation) 的隔离级别,这也是 TiDB 在 SQL 层面支持分布式事务的核心。
TiDB 的 SQL 层做完 SQL 解析后,会将 SQL 的执行计划转换为对 TiKV API 的实际调用。所以,数据都存储在 TiKV 中。
另外,TiKV 中的数据都会自动维护多副本(默认为三副本),天然支持高可用和自动故障转移。

TiFlash:TiFlash 是一类特殊的存储节点。和普通 TiKV 节点不一样的是,在 TiFlash 内部,数据是以列式的形式进行存储,主要的功能是为分析型的场景加速。

TiDB 支持 Intel 架构服务器环境、ARM 架构的服务器环境及主流虚拟化环境,并支持绝大多数的主流硬件网络。
TiDB 支持主流的 Linux 操作系统环境,在 v7.1 LTS 版本中,针对不同操作系统和 CPU 架构的组合,TiDB 提供不同级别质量标准的支持。

在以下操作系统以及对应的 CPU 架构组合上,TiDB 可满足企业级生产质量的要求,产品特性经过全面且系统化的验证:

 

TiDB 安装简介
安装按环境基于Vmwar 虚拟机环境,资源配置较低,只作为功能性演示。
总共建立了10个虚拟机:192.168.31.101 ~ 192.168.31.110,root 用户设置为相同密码。
192.168.31.101 用来安装MySQL 8.0.34 做一些辅助测试。
192.168.31.102 ~ 192.168.31.110 用来安装 TiDB 数据库集群,节点规划见 topology.yaml.

安装方式使用tiup 在线安装,tiup 工具起源TiDB 4.0 版本,既可用于安装部署 TiDB 集群,也可以用于管理TiDB集群。
安装tiup 工具
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

 

导入环境变量
source /root/.bash_profile

安装cluster 组件
tiup cluster

生成模板
tiup cluster template > topology.yaml

节点规划:
TiDB server:2 节点,PD server:3节点,Tikv server:3节点,Tiflash :1节点
监控服务器部署在 192.168.31.103 。
共计9个节点,每个节点2cpu,2GB RAM ,50GB disk.

更具规划修改配置文件
vi topology.yaml

global:
user: "tidb"
ssh_port: 22
deploy_dir: "/tidb-deploy"
data_dir: "/tidb-data"

tidb_servers:
- host: 192.168.31.102
- host: 192.168.31.103
pd_servers:
- host: 192.168.31.104
- host: 192.168.31.105
- host: 192.168.31.106

tikv_servers:
- host: 192.168.31.107
- host: 192.168.31.108
- host: 192.168.31.109

tiflash_servers:
- host: 192.168.31.110
data_dir: /tidb-data/tiflash-9000
deploy_dir: /tidb-deploy/tiflash-9000

monitoring_servers:
- host: 192.168.31.103

grafana_servers:
- host: 192.168.31.103

alertmanager_servers:
- host: 192.168.31.103


运行下面的命令检查集群是否符合安装条件:
tiup cluster check ./topology.yaml --user root -p

常见不符有:
1.THP特性没有禁用
禁用THP:
[root@localhost ~]# vim /etc/rc.d/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
[root@localhost ~]# chmod +x /etc/rc.d/rc.local

2.irqbalance 无法启动,numactl 没有安装
yum install numactl -y
在单核虚拟机上irqbalance 无法启动,添加为双核恢复正常

3.数据分区挂在特性没有添加 noatime
vi /etc/fstab 添加 noatime

其他不符合的条件,通常可以通过自动修复命令自动修复:
tiup cluster check ./topology.yaml --apply --user root -p

修复后再次检测
tiup cluster check ./topology.yaml --user root -p

部署 TiDB 集群(当前最新版本是v7.1.1):
tiup cluster deploy tidb-test v6.1.0 ./topology.yaml --user root -p

查看已经安装的集群:
tiup cluster list
tiup is checking updates for component cluster ...
Starting component `cluster`: /root/.tiup/components/cluster/v1.12.5/tiup-cluster list
Name User Version Path PrivateKey
---- ---- ------- ---- ----------
tidb-test tidb v6.1.0 /root/.tiup/storage/cluster/clusters/tidb-test /root/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa


安全启动tidb 集群,提示中包含初始密码:
tiup cluster start tidb-test --init
Started cluster `tidb-test` successfully
The root password of TiDB database has been changed.
The new password is: 's_DBef2*@8wh67-J51'.


查看集群状态
tiup cluster display tidb-test

Cluster name: tidb-test
Cluster version: v6.1.0
Deploy user: tidb
SSH type: builtin
Dashboard URL: http://192.168.31.106:2379/dashboard ##tidb dashboard 运行在PD 节点上,端口是2379
Grafana URL: http://192.168.31.103:3000 ##监控地址是,默认用户名和密码都是admin

 

关闭集群:
tiup cluster stop tidb-test

禁止开机启动集群
tiup cluster disable tidb-test

TiDB 集群启动顺序
+ [ Serial ] - StartCluster
Starting component pd
Starting component tikv
Starting component tidb
Starting component tiflash
Starting component prometheus
Starting component grafana
Starting component alertmanager
Starting component node_exporter
Starting component blackbox_exporter
+ [ Serial ] - UpdateTopology: cluster=tidb-test
Started cluster `tidb-test` successfully


TiDB 的关闭顺序
+ [ Serial ] - StopCluster
Stopping component alertmanager
Stopping component grafana
Stopping component prometheus
Stopping component tiflash
Stopping component tidb
Stopping component tikv
Stopping component pd
Stopping component node_exporter
Stopping component blackbox_exporter
Stopped cluster `tidb-test` successfully

tiup cluster destroy tidb-test
用于销毁集群
先停止集群
对于每个服务节点,删除其日志目录,部署目录,数据目录
如果各个服务的数据目录/部署目录的父目录是由 tiup-cluster 创建的,也一并删除

tiup cluster clean tidb-test
用于清空重置数据库
它会停止集群,然后删除集群上的数据。
手工重启集群之后,就能得到一个全新的集群了。

标签:tiup,TiDB,component,介绍,cluster,192.168,tidb,安装
From: https://www.cnblogs.com/uncle-dba/p/17644561.html

相关文章

  • Chia实践(二):安装Chia及使用cli
    前言某些价值上可能难以认同,例如Chia官方宣称的本该被销毁的硬盘用于耕种是有意义的。硬盘被销毁了,不再产生电力浪费,而继续运行还将持续,虽然相对于其他方式,已经好很多了。对于Chia,本身至少还是在持续进行中的。本文演示Chia在CentOS7Linux操作系统部署,在类似的操作系统都是可以......
  • jvisualvm安装Visual GC插件
    给jdk自带的jvisualvm安装VisualGC插件,遇到We'resorrythejava.netsitehasclosed(我们很抱歉java.net网站已经关闭)1、找到新的更新地址visualvm新访问地址:https://visualvm.github.io/index.html 进入“Plugins”,找到对应自己JDK版本的更新地址2、进入jvisualvm的插件管......
  • mysql 8 - linux 安装后 java 调用报错 SQLException: Temporary file write failure
    完整报错Cause:java.sql.SQLException:Temporaryfilewritefailure.;uncategorizedSQLException;SQLstate[HY000];errorcode[1878];Temporaryfilewritefailure.;nestedexceptionisjava.sql.SQLException:Temporaryfilewritefailure.解决不要作用在......
  • DocNav 安装教程
    DocNav安装教程一.下载软件在开始安装前,需要先下载安装软件,可以到Xilinx官网下载,也可也通过从百度云链接进行下载。右边是Xilinx官方的安装程序,左边是文档的压缩包,包含了2023.1版本的所有文档大小为4G; 百度云下载链接:https://pan.baidu.com/s/1ZVea9l9fh-NsupTFbBwBJQ......
  • win10开启WSL安装ubuntu
    从win10开始提供了WSL来使用linux系统,这里利用wsl来安装ubuntu,1、首先要确保windows中的几个相关的选项是打开的 确定后重启系统 然后以管理员身份打开powershell,输入命令Enable-WindowsOptionalFeature-Online-FeatureNameMicrosoft-Windows-Subsystem-Linux2、设置......
  • 前后端分离中台框架 Admin.Core 学习-介绍与配置说明
    中台框架后端项目Admin.Core的介绍与配置说明中台admin是前后端分离权限管理系统,Admin.Core为后端项目,基于.NET7.0开发。支持多租户、数据权限、动态Api、任务调度、OSS文件上传、滑块拼图验证、多数据库,分布式缓存、分布式事务等项目地址Githubhttps://github.com/......
  • Mac Catalina安装Python版本Crypto
    在PyCharm2020+VirtualEnvs环境下使用如下命令,在MacCatalina上成功安装Crypto模块:pip3installpycrypto示例'''JustfortestAESalgorithminPython'''importbase64fromCrypto.CipherimportAESdefadd_to_16(value):whilelen(value)%16!......
  • 安装fastadmin插件之青动CRM
    1、前置条件青动CRM为fastadmin的一个插件,什么是fastAdmin,请查看该网站https://www.fastadmin.net/video.html1、测试环境服务器2核2G,php7.2,MySQL5.7.24,redis6.2.7,nginx1.22.1,宝塔8.0.13、宝塔创建站点保存好创建站点时的数据库链接信息4、上传项目文件标红的为项目压......
  • linux redis安装
    第一步:下载redis安装包(root用户,目录/usr/local/src)#wgethttp://download.redis.io/releases/redis-5.0.5.tar.gz第二步:解压压缩包#tar-zxvfredis-5.0.5.tar.gz跳转到redis解压目录下cdr......
  • centOs8 安装JavaEE
    (1)安装linux版本的jdk步骤:先下载linux的jdk版本:下载网站:JavaDownloads|Oracle中国利用xshell:创建一个jdk文件夹:mkdir/opt/jdk利用xftp将步骤1中下载好的jdk版本安装包上传到jdk文件夹中;解压jdk文件夹中的jdk压缩包1.先进入jdk文件:cd/opt/jdk2.在jdk文件中......