通过TiDB 4.0的tiup命令,可以在本地Linux上一键安装多进程版的数据库集群与监控工具
TiDB是什么?
TiDB是中国创业公司PingCAP开发的开源分布式SQL数据库,与MySQL兼容。
自2017年GA以来,其开发稳步推进,目前已发布4.0版本。
在日本,尽管还没有很高的知名度,但PayPay的采用使其广为人知。
选择在PayPay使用TiDB的理由是什么?他们如何操作和运营它?
使用 tiup 命令
从4.0版本开始,除了之前的docker和ansible等基础设施运维和配置管理工具之外,还发布了能够实现更高级自动化配置的tiup命令。我认为今后会主要使用tiup进行安装。
这次我将介绍使用令人惊讶地简单的tiup在单机上进行安装的方法。
运动环境
-
- Ubuntu 20.04
-
- 無指定の Latest で今回導入されたのは tidb 4.0.5
- (結果中の /home/nobuh は実行したユーザーのホームディレクトリです)
安装
使用 curl 安装 tiup
$ curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4412k 100 4412k 0 0 2068k 0 0:00:02 0:00:02 --:--:-- 2068k
WARN: adding root certificate via internet: https://tiup-mirrors.pingcap.com/root.json
You can revoke this by remove /home/nobuh/.tiup/bin/7b8e153f2e2d0928.root.json
Set mirror to https://tiup-mirrors.pingcap.com success
Detected shell: bash
Shell profile: /home/nobuh/.bashrc
/home/nobuh/.bashrc has been modified to to add tiup to PATH
open a new terminal or source /home/nobuh/.bashrc to use it
Installed path: /home/nobuh/.tiup/bin/tiup
===============================================
Have a try: tiup playground
===============================================
看起来已经在.bashrc中安装了,因此执行$ SHELL -l来确保tiup已被添加到路径中。
$ exec $SHELL -l
$ which tiup
/home/nobuh/.tiup/bin/tiup
当密码验证通过后,运行 “tiup playground”。
-
- 設定済み Prometeus と Grafana
-
- クラスタ管理の Placement Driver (PD)
-
- RocksDB の KVS TiKV
-
- MySQL互換サーバーの TiDB
- 列DBの TiFlash
请一次性帮我安装。
$ tiup playground
The component `playground` is not installed; downloading from repository.
download https://tiup-mirrors.pingcap.com/playground-v1.1.1-linux-amd64.tar.gz 8.21 MiB / 8.21 MiB 100.00% 5.94 MiB p/s
Starting component `playground`:
Use the latest stable version: v4.0.5
Specify version manually: tiup playground <version>
The stable version: tiup playground v4.0.0
The nightly version: tiup playground nightly
Playground Bootstrapping...
The component `prometheus` is not installed; downloading from repository.
download https://tiup-mirrors.pingcap.com/prometheus-v4.0.5-linux-amd64.tar.gz 39.84 MiB / 39.84 MiB 100.00% 6.99 MiB p/s
download https://tiup-mirrors.pingcap.com/grafana-v4.0.5-linux-amd64.tar.gz 54.24 MiB / 54.24 MiB 100.00% 7.25 MiB p/s
Start pd instance...
The component `pd` is not installed; downloading from repository.
download https://tiup-mirrors.pingcap.com/pd-v4.0.5-linux-amd64.tar.gz 37.74 MiB / 37.74 MiB 100.00% 7.37 MiB p/s
Start tikv instance...
The component `tikv` is not installed; downloading from repository.
download https://tiup-mirrors.pingcap.com/tikv-v4.0.5-linux-amd64.tar.gz 134.43 MiB / 134.43 MiB 100.00% 7.30 MiB p/s
Start tidb instance...
The component `tidb` is not installed; downloading from repository.
download https://tiup-mirrors.pingcap.com/tidb-v4.0.5-linux-amd64.tar.gz 38.75 MiB / 38.75 MiB 100.00% 6.55 MiB p/s
...
Waiting for tikv 127.0.0.1:20160 ready
Start tiflash instance...
The component `tiflash` is not installed; downloading from repository.
download https://tiup-mirrors.pingcap.com/tiflash-v4.0.5-linux-amd64.tar.gz 352.59 MiB / 352.59 MiB 100.00% 7.70 MiB p/s
Waiting for tiflash 127.0.0.1:3930 ready ........
CLUSTER START SUCCESSFULLY, Enjoy it ^-^
To connect TiDB: mysql --host 127.0.0.1 --port 4000 -u root
To view the dashboard: http://127.0.0.1:2379/dashboard
To view the Prometheus: http://127.0.0.1:9090
To view the Grafana: http://127.0.0.1:3000
所有工作已经完成。每个角色的服务器在单机、多进程的配置下启动,集群已经运行起来。
首先是基本的mysql客户端。
我会在Ubuntu上安装MySQL客户端。
$ sudo apt install mysql-client-core-8.0
在使用Playground启动后,访问将不需要root密码。
$ mysql -h 127.0.0.1 --port 4000 -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.25-TiDB-v4.0.5 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> status;
--------------
mysql Ver 8.0.21-0ubuntu0.20.04.4 for Linux on x86_64 ((Ubuntu))
Connection id: 3
Current database:
Current user: root@127.0.0.1
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.25-TiDB-v4.0.5 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible
Protocol version: 10
Connection: 127.0.0.1 via TCP/IP
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
TCP port: 4000
Binary data as: Hexadecimal
--------------
暫且試試status,根據SQL和運營指令的語法來看,它與MySQL 5.7是相容的。
TiDB 仪表盘
TiDB 4.0的一个特点是仪表板。通过浏览器访问http://127.0.0.1:2379/dashboard。
您可以在登录时不需要使用root密码就能访问。
已经准备了一个面板,可以从集群状态中一站式访问查询性能、慢查询列表等所需信息。
在分散数据库的情况下,维护关键字的偏移程度是重要的管理要点,为此还提供了 Key Visualizer 工具。
已设置好的Grafana,可以进一步查看更详细的信息。
除了仪表板之外,还提供了已经设置好的用于监控的详细信息的 Grafana。
访问 http://127.0.0.1:3000/ 将进入Grafana的登录界面。首次访问时,使用用户名admin和密码admin登录后,将进入密码更改页面,请设置您喜欢的新密码。
Grafana 已经预先设置了以下仪表板。
当查看Instance Memory Detail和Transaction部分时,情况如下:重要的设置已经完成,非常便利。
可以直接使用Prometeus
仪表板上有搜索日志功能和Grafana,所以可能不太需要使用,但也可以直接访问后端的Prometeus,网址是http://127.0.0.1:9090/。
整理
这次介绍了 TiDB的具体内容和SQL方面不详细讲解的情况下,通过tiup playground命令一次性在一台机器上完成所有服务器和工具的准备。
MySQL 是一种跨平台的开源数据库管理系统,可以处理大数据,并支持分布式 SQL。在本地操作分布式 SQL 对我来说非常令人愉快。请务必尝试一下!