通过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密码就能访问。

已经准备了一个面板,可以从集群状态中一站式访问查询性能、慢查询列表等所需信息。

Screenshot from 2020-09-08 23-03-32.png

在分散数据库的情况下,维护关键字的偏移程度是重要的管理要点,为此还提供了 Key Visualizer 工具。

Screenshot from 2020-09-08 23-05-33.png

已设置好的Grafana,可以进一步查看更详细的信息。

除了仪表板之外,还提供了已经设置好的用于监控的详细信息的 Grafana。

访问 http://127.0.0.1:3000/ 将进入Grafana的登录界面。首次访问时,使用用户名admin和密码admin登录后,将进入密码更改页面,请设置您喜欢的新密码。

Grafana 已经预先设置了以下仪表板。

Screenshot from 2020-09-08 23-12-09.png

当查看Instance Memory Detail和Transaction部分时,情况如下:重要的设置已经完成,非常便利。

Screenshot from 2020-09-08 23-13-30.png

可以直接使用Prometeus

仪表板上有搜索日志功能和Grafana,所以可能不太需要使用,但也可以直接访问后端的Prometeus,网址是http://127.0.0.1:9090/。

Screenshot from 2020-09-08 23-15-24.png

整理

这次介绍了 TiDB的具体内容和SQL方面不详细讲解的情况下,通过tiup playground命令一次性在一台机器上完成所有服务器和工具的准备。

MySQL 是一种跨平台的开源数据库管理系统,可以处理大数据,并支持分布式 SQL。在本地操作分布式 SQL 对我来说非常令人愉快。请务必尝试一下!

广告
将在 10 秒后关闭
bannerAds