解决方案

TiDB安装简介

seo靠我 2023-09-25 07:57:13

文章目录

一、TiDB概述1、简介2、OLAP和OLTP3、与MySQL兼容性 二、架构三、安装1、本地版安装2、单机版集群安装2.1 概述2.2 安装2.3 访问集群 SEO靠我3、配置文件地址 四、使用方式1、基础SQL2、历史数据查询

一、TiDB概述

官网地址

https://docs.pingcap.com/zh/tidb/stable/quick-starSEO靠我t-with-tidb

TiDB可以理解为是MySQL的加强版/分布式MySQL/MySQLPlus

1、简介

TiDB 是 PingCAP 公司设计的开源分布式 HTAP (Hybrid TransactSEO靠我ional and Analytical Processing) 数据库,结合了传统的 RDBMS 和 NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。SEO靠我TiDB 的目标是为 OLTP (Online Transactional Processing) 和 OLAP (Online Analytical Processing) 场景提供一站式的解决方案SEO靠我

TiDB数据库具备「分布式强一致性事务、在线弹性水平扩展、故障自恢复的高可用、跨数据中心多活」等核心特性,是大数据时代理想的数据库集群和云数据库解决方案。目前,已被近 1000 家不同行业的领先企业SEO靠我应用在实际生产环境,涉及互联网、游戏、银行、保险、证券、航空、制造业、电信、新零售、政府等多个行业,包括美国、欧洲、日本、东南亚等海外用户。

TiDB 的设计目标是 100% 的 OLTP 场景和 80SEO靠我% 的 OLAP 场景,更复杂的 OLAP 分析可以通过 TiSpark 项目来完成。

TiDB 对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。同时它也SEO靠我让开发运维人员不用关注数据库 Scale 的细节问题,专注于业务开发,极大的提升研发的生产力。

2、OLAP和OLTP

OLTP

强调支持短时间内大量并发的事务操作(增删改查)能力,每个操作涉及的数据量都很SEO靠我小(比如几十到几百字节)

强调事务的强一致性(想想银行转账交易,容不得差错)

OLAP

偏向于复杂的只读查询,读取海量数据进行分析计算,查询时间往往很长

代表产品:

Greenplum

TeraData

阿里 AnSEO靠我alyticDB

3、与MySQL兼容性

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

但 TiDB 尚未支持一些 MySQL 功能,可能的原因如下:

有更好的解决方案,例如SEO靠我 JSON 取代 XML 函数。目前对这些功能的需求度不高,例如存储流程和函数。一些功能在分布式系统上的实现难度较大。

除此以外,TiDB 不支持 MySQL 复制协议,但提供了专用工具用于与 MySQSEO靠我L 复制数据:

二、架构

TiDB 集群主要包括三个核心组件:TiDB Server,PD Server 和 TiKV Server。此外,还有用于解决用户复杂 OLAP 需求的 TiSpark 组件和简SEO靠我化云上部署管理的 TiDB Operator 组件。

TiDB Server:接受SQL请求,与客户端交互(计算能力)。PD Server:集群管理者。TiKV Server:真正存储数据的(存储能力)SEO靠我。TiSpark:解决复杂OLAP查询。TiDB Operator:云上部署组件。

内部架构

与外界架构

三、安装

1、本地版安装

参考地址

https://docs.pingcap.com/zh/tidb/stSEO靠我able/quick-start-with-tidb

TiDB 是一个分布式系统。最基础的 TiDB 测试集群通常由 2 个 TiDB 实例、3 个 TiKV 实例、3 个 PD 实例和可选的 TiFlSEO靠我ash 实例构成。通过 TiUP Playground,可以快速搭建出上述的一套基础测试集群,步骤如下:

下载并安装 TiUP。 curl --proto =https --tlsv1.SEO靠我2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh 声明全局环境变量。 source ${your_shSEO靠我ell_profile} source /root/.bash_profile 在当前 session 执行以下命令启动集群

直接运行 tiup playground SEO靠我命令会运行最新版本的 TiDB 集群,其中 TiDB、TiKV、PD 和 TiFlash 实例各 1 个:

tiup playground

指定 TiDB 版本以及各组件实例个数

tiup playgrouSEO靠我nd v6.5.2 --db 2 --pd 3 --kv 3

这样就安装完成。但是只能本机访问:

新开启一个 session 以访问 TiDB 数据库。 tiup client

mysqlSEO靠我 --host 127.0.0.1 --port 4000 -u root 通过 http://127.0.0.1:9090访问 TiDB 的 Prometheus 管理界面。通过 SEO靠我http://127.0.0.1:2379/dashboard 访问 TiDB Dashboard 页面,默认用户名为 root,密码为空。通过 http://127.0.0.1:3000访问 TiDSEO靠我B 的 Grafana 界面,默认用户名和密码都为 admin。(可选)将数据加载到 TiFlash 进行分析。测试完成之后,可以通过执行以下步骤来清理集群: tiup clean -SEO靠我-all

2、单机版集群安装

2.1 概述

参考地址

https://docs.pingcap.com/zh/tidb/stable/quick-start-with-tidb 适用场景:希SEO靠我望用单台 Linux 服务器,体验 TiDB 最小的完整拓扑的集群,并模拟生产环境下的部署步骤。 实例个数IP配置TiKV310.0.1.1 10.0.1.1 10.0.1.1避免端口SEO靠我和目录冲突TiDB110.0.1.1默认端口 全局目录配置PD110.0.1.1默认端口 全局目录配置TiFlash110.0.1.1默认端口 全局目录配置Monitor110.0.1.1默认端口 全SEO靠我局目录配置 2.2 安装 下载并安装 TiUP: curl --proto =https --tlsv1.2 -sSf https://tiup-mirSEO靠我rors.pingcap.com/install.sh | sh 声明全局环境变量: source ${your_shell_profile} soSEO靠我urce /root/.bash_profile 安装 TiUP 的 cluster 组件: tiup cluster 如果机器已经安装 TiUP SEO靠我cluster,需要更新软件版本: tiup update --self && tiup update cluster 由于模拟多机部署,需要通过 root 用户调大SEO靠我 sshd 服务的连接数限制:

修改 /etc/ssh/sshd_config 将 MaxSessions 调至 20。

#MaxAuthTries 6 MaxSessions 20

重启 SEO靠我sshd 服务:

service sshd restart 创建并启动集群

按下面的配置模板,编辑配置文件,命名为 topo.yaml,其中:

user: "tidb":表示通过 tidbSEO靠我 系统用户(部署会自动创建)来做集群的内部管理,默认使用 22 端口通过 ssh 登录目标机器replication.enable-placement-rules:设置这个 PD 参数来确保 TiFlSEO靠我ash 正常运行host:设置为本部署主机的 IP global: user: "tidb" ssh_port: 22 deploy_SEO靠我dir: "/tidb-deploy" data_dir: "/tidb-data" monitored: node_exporter_port: SEO靠我9100 blackbox_exporter_port: 9115 server_configs: tidb: log.slow-thSEO靠我reshold: 300 tikv: readpool.storage.use-unified-pool: false readpool.coproceSEO靠我ssor.use-unified-pool: true pd: replication.enable-placement-rules: true repSEO靠我lication.location-labels: ["host"] tiflash: logger.level: "info" pd_serversSEO靠我: - host: 127.0.0.1 tidb_servers: - host: 127.0.0.1 tikv_servers: SEO靠我 - host: 127.0.0.1 port: 20160 status_port: 20180 config: serSEO靠我ver.labels: { host: "logic-host-1" } - host: 127.0.0.1 port: 20161 status_pSEO靠我ort: 20181 config: server.labels: { host: "logic-host-2" } - host: 127.0.0.SEO靠我1 port: 20162 status_port: 20182 config: server.labels: { host: "logSEO靠我ic-host-3" } tiflash_servers: - host: 127.0.0.1 monitoring_servers: SEO靠我 - host: 127.0.0.1 grafana_servers: - host: 127.0.0.1 执行集群部署命令: 参SEO靠我数 <cluster-name> 表示设置集群名称参数 <version> 表示设置集群版本,例如 v6.5.2。可以通过 tiup list tidb 命令来查看当前支持部署的 TiDB 版本参数 SEO靠我-p 表示在连接目标机器时使用密码登录(本机登录密码) tiup cluster deploy <cluster-name> <version> ./topo.yaml --user SEO靠我root -p tiup cluster deploy mytidb v6.5.2 ./topo.yaml --user root -p

按照引导,输入”y”及 root 密码,来完成部SEO靠我署:

Do you want to continue? [y/N]: y Input SSH password: 启动集群: tiup clusterSEO靠我 start <cluster-name> tiup cluster start mytidb 2.3 访问集群

安装 MySQL 客户端。

yum -y instalSEO靠我l mysql 访问 TiDB 数据库,密码为空: mysql -h 10.0.1.1 -P 4000 -u root 访问 TiDB 的 GrafSEO靠我ana 监控

通过 http://{grafana-ip}:3000 访问集群 Grafana 监控页面,默认用户名和密码均为 admin。

访问 TiDB 的 Dashboard:

通过 http://{SEO靠我pd-ip}:2379/dashboard 访问集群 TiDB Dashboard 监控页面,默认用户名为 root,密码为空。

查看已部署集群列表 tiup cluster list SEO靠我 执行以下命令查看集群的拓扑结构和状态: tiup cluster display <cluster-name>

3、配置文件地址

https://download.csdSEO靠我n.net/download/weixin_44624117/87820548

四、使用方式

1、基础SQL

Tidb地址

https://docs.pingcap.com/zh/tidb/stable/baSEO靠我sic-sql-operations

SQL 语言通常按照功能划分成以下的 4 个部分:

DDL (Data Definition Language):数据定义语言,用来定义数据库对象,包括库、表、视图和SEO靠我索引等。DML (Data Manipulation Language):数据操作语言,用来操作和业务相关的记录。DQL (Data Query Language):数据查询语言,用来查询经过条件筛选SEO靠我的记录。DCL (Data Control Language):数据控制语言,用来定义访问权限和安全级别。

常用的 DDL 功能是对象(如表、索引等)的创建、属性修改和删除,对应的命令分别是 CREATSEO靠我E、ALTER 和 DROP。

2、历史数据查询

为支持读取历史版本数据,TiDB 引入了一个新的系统变量 tidb_snapshot:

这个变量的作用域为 SESSION。你可以通过标准的 SET 语句修SEO靠我改这个变量的值。这个变量的数据类型为文本类型,能够存储 TSO 和日期时间。TSO 是从 PD 端获取的全局授时的时间戳,日期时间的格式为:“2016-10-08 16:45:26.999”,一般来说SEO靠我可以只写到秒,比如”2016-10-08 16:45:26”。当这个变量被设置时,TiDB 会按照设置的时间戳建立 Snapshot(没有开销,只是创建数据结构),随后所有的 SELECT 操作都会从SEO靠我这个 Snapshot 上读取数据。

当读取历史版本操作结束后,可以结束当前 Session 或者是通过 SET 语句将 tidb_snapshot 变量的值设为 “”,即可读取最新版本的数据。

历史数据SEO靠我保留策略TiDB 使用 MVCC 管理版本,当更新/删除数据时,不会做真正的数据删除,只会添加一个新版本数据,所以可以保留历史数据。历史数据不会全部保留,超过一定时间的历史数据会被彻底删除,以减小空间SEO靠我占用以及避免历史版本过多引入的性能开销。

查看表中的数据: SELECT * from t; # 2023-05-14 15:18:51 SELECT NSEO靠我OW(); +------+ | c | +------+ | 1 | | 2 | | 3 | SEO靠我 +------+ 3 rows in set (0.00 sec) 更新数据 UPDATE t SET c=22 WHERE c=2; SEO靠我 # 2023-05-14 15:19:53 SELECT NOW(); SELECT * from t; +------+ SEO靠我 | c | +------+ | 1 | | 22 | | 3 | +------+ 3 rows iSEO靠我n set (0.00 sec) 查询某一时刻数据 set @@tidb_snapshot="2023-05-14 15:18:51"; # 1,2,SEO靠我3 SELECT * FROM t; +------+ | c | +------+ | 1 | | SEO靠我22 | | 3 | +------+ 3 rows in set (0.00 sec) 清空这个变量后,即可读取最新版本数据: SEO靠我 set @@tidb_snapshot=""; # 1,22,3 SELECT * FROM t; +------+ | SEO靠我c | +------+ | 1 | | 22 | | 3 | +------+ 3 rows in sSEO靠我et (0.00 sec)
“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2