TiDB环境搭建与基础功能验证

在实际的项目实施过程中,很多企业都会提出对大数据的要求,特别是一些大型企业,业务数据相对较多,历史数据比较复杂,为了实现对企业业务的整体管控需求,进行信息化建设时必然会提出大数据的需求,这就要求信息化系统具备大数据管理能力,那么系统在数据存储、数据读写等方面就要有比较好的性能。在以往项目中,一般都是采用数据库的主从结构、读写分离、集群部署等方式满足对于大数据量的处理需求,但是对于MySQL数据库来说,本身在大数据量上就存在限制,因此必须找到一种方案实现大数据量的支持。

由于公司产品都是采用MySQL数据库,为了降低数据库切换和学习的成本,需要一个能和MySQL良好兼容的方案,TiDB由于其本身100%支持MySQL5.7协议,所以无论是从使用效果还是学习成本来说,TiDB都是最好的选择。本次针对TiDB数据库进行了初步的技术预研,部署了基础的数据库环境,并测试了相关功能。

1总体说明

本次主要是对TiDB产品进行初步技术预研,包括TiDB的基础环境部署,验证常用的SQL语句,并实现从MySQL和TiDB的数据同步,从而验证MySQL和TiDB数据库的差异和兼容性,为后续产品升级TiDB数据库提供技术支持,并通过将内部产品的数据库切换为TiDB,验证产品功能与TiDB数据库的适配程度。

1.1名词解释

TiDB:TiDB是一款开源的分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时HTAP、云原生的分布式数据库、兼容MySQL 5.7协议和MySQL 生态等重要特性。为用户提供一站式OLTP、OLAP、HTAP解决方案。TiDB适合高可用、强一致要求较高、数据规模较大等各种应用场景。

TiUP:从TiDB 4.0版本开始,TiUP作为新的工具,承担着包管理器的角色,管理着TiDB生态下众多组件,如TiDB、PD、TiKV等。用户想要运行TiDB 生态中任何组件时,只需要执行TiUP一行命令即可。

TiKV:一个分布式事务型的键值数据库,提供了满足ACID约束的分布式事务接口,并且通过Raft协议保证多副本数据一致性以及高可用。TiKV作为 TiDB 的存储层,为用户写入 TiDB 的数据提供了持久化以及读写服务,同时还存储了 TiDB 的统计信息数据。

TiFlash:TiDB HTAP形态的关键组件,是TiKV的列存扩展,在提供了良好隔离性的同时,也兼顾了强一致性。

TiCDC:主要是通过拉取TiKV变更日志实现的TiDB增量数据同步工具,具有将数据还原到与上游任意TSO一致状态的能力,同时提供开放数据协议(TiCDC Open Protocol),支持其他系统订阅数据变更。

TiDB Operator:是Kubernetes上的 TiDB 集群自动运维系统,提供包括部署、升级、扩缩容、备份恢复、配置变更的TiDB全生命周期管理。借助TiDB Operator,TiDB可以无缝运行在公有云或私有部署的Kubernetes集群上。

TiDB Data Migration:DM是一体化的数据迁移任务管理工具,支持从与 MySQL协议兼容的数据库(MySQL、MariaDB、Aurora MySQL)到 TiDB 的数据迁移。

1.2MySQL兼容

TiDB 100%兼容MySQL 5.7协议、MySQL 5.7常用的功能及语法。MySQL 5.7生态中的系统工具(PHPMyAdmin、Navicat、MySQL Workbench、mysqldump、Mydumper/Myloader)、客户端等均适用于 TiDB。

但MySQL的部分功能TiDB尚未支持:

1.存储过程与函数、XML函数、自定义函数、事件;

2.触发器、外键约束、临时表;

3.全文/空间函数与索引;

4.非 ascii/latin1/binary/utf8/utf8mb4 的字符集;

5.事务保存点Savepoints;

6.列级权限;

7.XA 、CREATE TABLE tblName AS SELECT stmt 、CHECK TABLE 、CHECKSUM TABLE 、GET_LOCK 、 RELEASE_LOCK 等语法或函数。

1.3功能验证

本次是第一次进行TiDB的功能验证,主要验证TiDB的数据库部署,部署TiDB、TiKV、PD、TiFlash以及Monitor、Grafana等相关组件和功能。由于是在本地搭建的虚拟机进行环境部署,所以本次只做基础功能验证,对于服务器要求比较高的功能考虑在服务器搭建环境验证。主要验证功能如下:

1.TiDB的安装部署,包括必需的功能组件;

2.在服务器上直接通过命令行访问TiDB数据库进行测试,以及远程访问TiDB Dashboard、Grafana监控页面;

3.通过Navicat连接TiDB数据库,进行建库、建表、建用户、授权、数据增删改查、结构修改等相关SQL语句的验证;

4.通过导入、导出工具实现TiDB和MySQL之间的数据同步;

5.通过产品中的工具在TiDB中初始化数据库,并连接TiDB数据库进行产品功能验证。

2TiDB部署

参考TiDB官方文档进行TiDB数据库的部署,包括单机部署和集群部署,以集群部署为主(单机只做安装验证),并通过本地访问服务器验证远程数据库访问。

2.1环境初始化

1.系统环境为CentOS7:

 

2.安装MySQL,版本为mysql5.7:

 TiDB环境搭建与基础功能验证_第1张图片

2.2TiDB安装

由于升级TiDB数据库的目的只为了满足内部产品在大数据量的高可用需要,后续项目中一定是使用集群部署的(通过K8S云平台部署)方案,所以TiDB也需要集群部署,单机部署只做简单测试,保证TiDB可以部署安装。

2.2.1单机部署

1.下载并安装 TiUP:

 

2.声明全局环境变量:

 

3.执行以下命令启动集群:

 

注意:playground的命令行参数说明:

 TiDB环境搭建与基础功能验证_第2张图片

TiDB环境搭建与基础功能验证_第3张图片 

4.启动效果:

TiDB环境搭建与基础功能验证_第4张图片 

2.2.2集群部署

单机模拟生产环境部署。

1.下载并安装 TiUP:

 

2.声明全局环境变量

 

你可能感兴趣的:(技术文档,数据库,TiDB,java)