国产数据库|TiDB 5.0 快速体验

作者 | JiekeXu

来源 | JiekeXu DBA之路(ID: JiekeXu_IT)

大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来体验一下 TiDB 5.0,欢迎点击上方蓝字关注我,标星或置顶,更多干货第一时间到达!

TiDB 是平凯星辰 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。更是墨天轮排行榜第一的国产数据库,可点击此处查看本月国产数据库排行榜。TiDB 的目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。今年四月份发布了 5.0 版本,六月二十四日又发布了 TiDB 5.1 版本,核心架构图如下:

总的来说,大体上由 TiDB 、TiKV 、 PD 三部分集群构成加上 Grafana 、dashboard 等监控服务,看了下面最小部署的拓扑图,个人学习想要在自己的笔记本上安装这么一套环境那绝对是不可能的。

由此可见需要十台机器,最小内存 8GB,个人笔记本肯定没法满足要求,但 TiDB 5.0 提供了一个 playground 的命令可以在个人笔记本上使用一台 Linux 机器模拟搭建一个集群环境,只要你的机器可联网就可以搭建出来。步骤很简单,下面我们一起体验一下吧。

首先需要一台 Linux 机器并可以上网,如何能够上网可参考我之前安装 openGauss 的文章

网络适配器选择【NAT】模式,查看宿主机无线适配器关于 net8 的网络配置,然后 VM 里选择【编辑】——>【虚拟网络编辑器】——>【DHCP设置】,子网 IP 需要和前面看到的在同一网段里,然后选择 DHCP 自动获取。

网卡配置如下:

[root@JiekeXu-Test network-scripts]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.7 (Maipo)
[root@JiekeXu-Test network-scripts]# free -m 
              total        used        free      shared  buff/cache   available
Mem:           7802        5682         142          42        1977        1832
Swap:          6143           0        6143
[root@JiekeXu-Test network-scripts]# more ifcfg-ens32
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens32"
UUID="e8332396-7724-410f-9887-1fc0e27fc818"
DEVICE="ens32"
ONBOOT="yes"
GATEWAY="192.168.75.2"
IPADDR="192.168.75.128"
PREFIX="24"
IPV6_PRIVACY="no"

下载并安装 TiUP

使用如下 curl 命令

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

生效环境变量 source /root/.bash_profile 其实也就是 export PATH=/root/.tiup/bin:$PATH 一条命令。

使用 tiup playground 模拟出一个集群环境

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

tiup playground

当然也可以指定各组件和实例个数

[root@JiekeXu-Test ~]# tiup playground v5.0.0 --db 2 --pd 3 --kv 3 --monitor


上述命令会在本地下载并启动某个版本的集群(例如 v5.1.0),--monitor 表示同时部署监控组件。最新版本可以通过执行 tiup list tidb 来查看。

Available versions for tidb:
Version                             Installed  Release                              Platforms
-------                             ---------  -------                              ---------
nightly -> v5.0.0-nightly-20210718             2021-07-18T21:18:32+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.0                                         2020-04-16T14:03:31+08:00            darwin/amd64,linux/amd64
v3.0                                           2020-04-16T16:58:06+08:00            darwin/amd64,linux/amd64
v3.0.1                                         2020-04-27T19:38:36+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.2                                         2020-04-16T23:55:11+08:00            darwin/amd64,linux/amd64
v3.0.3                                         2020-04-17T00:16:31+08:00            darwin/amd64,linux/amd64
v3.0.4                                         2020-04-17T00:22:46+08:00            darwin/amd64,linux/amd64
v3.0.5                                         2020-04-17T00:29:45+08:00            darwin/amd64,linux/amd64
v3.0.6                                         2020-04-17T00:39:33+08:00            darwin/amd64,linux/amd64
v3.0.7                                         2020-04-17T00:46:32+08:00            darwin/amd64,linux/amd64
v3.0.8                                         2020-04-17T00:54:19+08:00            darwin/amd64,linux/amd64
v3.0.9                                         2020-04-17T01:00:58+08:00            darwin/amd64,linux/amd64
v3.0.10                                        2020-03-13T14:11:53.774527401+08:00  darwin/amd64,linux/amd64
v3.0.11                                        2020-04-17T01:09:20+08:00            darwin/amd64,linux/amd64
v3.0.12                                        2020-04-17T01:16:04+08:00            darwin/amd64,linux/amd64
v3.0.13                                        2020-04-26T17:25:01+08:00            darwin/amd64,linux/amd64
v3.0.14                                        2020-05-09T21:11:49+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.15                                        2020-06-05T16:53:32+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.16                                        2020-07-03T20:07:45+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.17                                        2020-08-03T15:27:29+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.18                                        2020-08-21T20:02:59+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.19                                        2020-09-25T18:24:11+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.20                                        2020-12-25T15:20:36+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.1.0-beta                                    2020-05-22T14:35:59+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.1.0-beta.1                                  2020-05-22T15:22:30+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.1.0-beta.2                                  2020-05-22T15:28:20+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.1.0-rc                                      2020-05-22T15:56:23+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.1.0                                         2020-05-22T15:34:33+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.1.1                                         2020-04-30T21:02:32+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.1.2                                         2020-06-04T17:55:40+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.0-beta                                    2020-05-26T11:18:05+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.0-beta.1                                  2020-05-26T11:42:48+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.0-beta.2                                  2020-05-26T11:56:51+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.0-rc                                      2020-05-26T14:56:06+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.0-rc.1                                    2020-04-29T01:03:31+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.0-rc.2                                    2020-05-15T21:54:51+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.0                                         2020-05-28T20:10:11+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.1                                         2020-06-12T21:21:12+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.2                                         2020-07-01T19:59:39+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.3                                         2020-07-25T01:03:31+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.4                                         2020-07-31T16:44:42+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.5                                         2020-08-31T23:53:35+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.6                                         2020-09-15T22:13:29+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.7                                         2020-09-29T20:15:07+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.8                                         2020-10-30T19:30:22+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.9                                         2020-12-21T17:25:20+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.10                                        2021-01-15T13:15:09+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.11                                        2021-02-26T17:39:23+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.12-20210427                               2021-05-08T11:09:37+08:00            linux/amd64
v4.0.12                                        2021-04-02T16:55:00+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.13                                        2021-05-27T22:18:32+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.0-20210329                                2021-03-29T19:45:19+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.0-20210403                                2021-04-03T09:13:36+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.0-20210408                                2021-04-08T17:02:41+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.0-nightly-20210718                        2021-07-18T21:18:32+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.0-rc                                      2021-01-12T23:40:27+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.0                              YES        2021-04-07T17:30:00+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.1                                         2021-04-24T21:31:28+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.2                                         2021-06-09T22:49:33+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.3                                         2021-07-02T16:13:22+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.1.0                                         2021-06-24T16:23:50+08:00            darwin/amd64,linux/amd64,linux/arm64
  • 以这种方式执行的 playground,在结束部署测试后 TiUP 会清理掉原集群数据,重新执行该命令后会得到一个全新的集群。

  • 若希望持久化数据,可以执行 TiUP 的 --tag 参数,例如:tiup --tag '/root' playground v5.1.0 --db 3 --pd 3 --kv 3 --monitor

  • -T, --tag (string) :对启动的组件指定一个 tag:有的组件在执行过程中需要使用磁盘存储,TiUP 会分配一个临时目录作为该组件本次执行的存储目录,如果希望分配固定目录,可以用 -T/--tag 来指定目录名字,这样多次执行使用同样的 tag 就能读写到同一批文件。

可以使用 MySQL 客户端或者 tiup client 连接到 TiDB 5.0

[root@JiekeXu-Test ~]# tiup client
选择客户端连接

[root@JiekeXu-Test ~]# tiup client
Starting component `client`: /root/.tiup/components/client/v1.5.2/tiup-client
Connected with driver mysql (5.7.25-TiDB-v5.0.0)
Type "help" for help.

my:root@127.0.0.1:4000=> select tidb_version()\G
*************************** 1. row ***************************
tidb_version(): Release Version: v5.0.0
Edition: Community
Git Commit Hash: bdac0885cd11bdf571aad9353bfc24e13554b91c
Git Branch: heads/refs/tags/v5.0.0
UTC Build Time: 2021-04-06 16:36:29
GoVersion: go1.13
Race Enabled: false
TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
Check Table Before Drop: false

my:root@127.0.0.1:4000=> show databases;
      Database      
--------------------
 INFORMATION_SCHEMA 
 METRICS_SCHEMA 
 PERFORMANCE_SCHEMA 
 mysql 
 test 
(5 rows)

my:root@127.0.0.1:4000=> use test;
USE
my:root@127.0.0.1:4000=> show tables;
(0 rows)

my:root@127.0.0.1:4000=> 
my:root@127.0.0.1:4000=> use mysql;
USE
my:root@127.0.0.1:4000=> show tables;
     Tables_in_mysql     
-------------------------
 GLOBAL_VARIABLES 
 bind_info 
 columns_priv 
 db 
 default_roles 
 expr_pushdown_blacklist 
 gc_delete_range 
 gc_delete_range_done 
 global_priv 
 help_topic 
 opt_rule_blacklist 
 role_edges 
 schema_index_usage 
 stats_buckets 
 stats_extended 
 stats_feedback 
 stats_fm_sketch 
 stats_histograms 
 stats_meta 
 stats_top_n 
 tables_priv 
 tidb 
 user 
(23 rows)

my:root@127.0.0.1:4001=> show databases;
      Database      
--------------------
 INFORMATION_SCHEMA 
 METRICS_SCHEMA 
 PERFORMANCE_SCHEMA 
 mysql 
 test 
(5 rows)

my:root@127.0.0.1:4001=> use METRICS_SCHEMA;
USE
my:root@127.0.0.1:4001=>

MySQL 客户端连接

[root@JiekeXu-Test ~]# mysql --host 127.0.0.1 --port 4001 -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.25-TiDB-v5.0.0 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| INFORMATION_SCHEMA |
| METRICS_SCHEMA     |
| PERFORMANCE_SCHEMA |
| mysql              |
| test               |
+--------------------+
5 rows in set (0.00 sec)

MySQL [(none)]> select version();
+--------------------+
| version()          |
+--------------------+
| 5.7.25-TiDB-v5.0.0 |
+--------------------+
1 row in set (0.01 sec)

MySQL [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MySQL [mysql]> 
MySQL [mysql]> show processlist;
+------+------+-----------------+-------+---------+------+------------+------------------+
| Id   | User | Host            | db    | Command | Time | State      | Info             |
+------+------+-----------------+-------+---------+------+------------+------------------+
|    9 | root | 127.0.0.1:43032 | mysql | Query   |    0 | autocommit | show processlist |
|   11 | root | 127.0.0.1:43182 | mysql | Sleep   |  127 | autocommit | NULL             |
+------+------+-----------------+-------+---------+------+------------+------------------+
2 rows in set (0.00 sec)

MySQL [mysql]>

除了连接还可以登录监控系统,通过虚拟机图形界面打开火狐,通过 http://127.0.0.1:9090 访问 TiDB 的 Prometheus 管理界面。
通过 http://127.0.0.1:2379/dashboard 访问 TiDB Dashboard 页面,默认用户名为 root,密码为空。




当然本次只是一个快速体验,当 tiup playground v5.0.0 --db 2 --pd 3 --kv 3 --monitor 执行结果窗口 ctrl + c 取消后,集群也就不存在了,下次使用还得使用 tiup playground 命令,--tag 感觉不好用,体验不是很好,希望能够继续改进改进。

[root@JiekeXu-Test ~]# tiup playground v5.0.0 --db 2 --pd 3 --kv 3 --monitor
Starting component `playground`: /root/.tiup/components/playground/v1.5.2/tiup-playground v5.0.0 --db 2 --pd 3 --kv 3 --monitor
Using the version v5.0.0 for version constraint "v5.0.0".

If you'd like to use a TiDB version other than v5.0.0, cancel and retry with the following arguments:
    Specify version manually:   tiup playground <version>
    Specify version range:      tiup playground ^5
    The nightly version:        tiup playground nightly

Playground Bootstrapping...
Start pd instance
Start pd instance
Start pd instance
Start tikv instance
Start tikv instance
Start tikv instance
Start tidb instance
Start tidb instance
Waiting for tidb instances ready
127.0.0.1:4000 ... Done
127.0.0.1:4001 ... Done
Start tiflash instance
Waiting for tiflash instances ready
127.0.0.1:3930 ... Done
CLUSTER START SUCCESSFULLY, Enjoy it ^-^
To connect TiDB: mysql --host 127.0.0.1 --port 4000 -u root -p (no password) --comments
To connect TiDB: mysql --host 127.0.0.1 --port 4001 -u root -p (no password) --comments
To view the dashboard: http://127.0.0.1:2379/dashboard
PD client endpoints: [127.0.0.1:2379 127.0.0.1:2382 127.0.0.1:2384]
To view the Prometheus: http://127.0.0.1:9090
To view the Grafana: http://127.0.0.1:3000

如何使用备份恢复工具 BR 进行备份恢复,如何使用数据导出工具 Dumpling 等等,有机会在学习体验,今天的快速体验就先到这里咯,也欢迎更多小伙伴体验哦!以下是我的地址,欢迎更多小伙伴来撩。如果此文对您有帮助,欢迎点赞、在看与转发,写作不易,坚持写作更不易,您的点赞、转发举手之劳,便是对作者最大的支持,也能让更多的人受益,感谢!
———————————————————————————

公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
腾讯云:https://cloud.tencent.com/developer/user/5645107

———————————————————————————

2021年7月国产数据库排行榜:openGauss高歌猛进,GBase持续下跌

Oracle 12c 及以上版本补丁更新说明及下载方法(收藏版)

Oracle 19c 19.10DBRU 最新补丁升级看这一篇就够了

ASM 管理的内部工具:KFED、KFOD、AMDU

性能优化|关于数据库历史性能问题的一道面试题

一线运维 DBA 五年经验常用 SQL 大全(二)

ORA-00349|激活 ADG 备库时遇到的问题

Oracle 轻量级实时监控工具 oratop

MySQL OCP 认证考试你知道吗?

Oracle 19C RAC 安装遇到的坑

Oracle 19C MAA 搭建指南

Oracle 每日一题系列合集

百花齐放的国产数据库


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值