[前回] MySQL vs. TiDB-分散トランザクションの比較検証(5): TiDBの基本
はじめに
早速、TiDBをインストールし、動かしてみます。
検証環境
TiDBクラスタ環境を構築します。
果たして、ノートPCにクラスタ導入できるでしょうか。
CPU: Intel(R) Core(TM) 3.30GHz(4コア8スレッド)
メモリ: 16 GB
OS: Ubuntu 20.04 LTS
Ubuntuは、Windows 10で以下のように管理者権限で導入しました。
> wsl --install -d Ubuntu-20.04
環境構築のシナリオ
単一Linuxサーバーに、テスト用TiDBクラスターをすばやくローカル展開します。
この環境で、TiDBの基本アーキテクチャと、TiDB/TiKV/PD/監視コンポーネントなどコンポーネント操作を学習できるようです。
インストール手順
PingCAP社のローカルテストクラスタのデプロイを参考にしました。
1. 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 6660k 100 6660k 0 0 8517k 0 --:--:-- --:--:-- --:--:-- 8517k
Successfully set mirror to https://tiup-mirrors.pingcap.com
Detected shell: bash
Shell profile: /home/zhao/.bash_profile
Installed path: /home/zhao/.tiup/bin/tiup
===============================================
Have a try: tiup playground
===============================================
2. 環境変数設定を反映
$ source ~/.bash_profile
3. クラスタを起動
TiDBテストクラスタは、通常以下の構成が必要とのことです。
- TiDBインスタンス、2つ
- TiKVインスタンス、3つ
- PDインスタンス、3つ
- TiFlashインスタンス、1つ
$ tiup playground --db 2 --pd 3 --kv 3
いくつかコンポーネントがインストールされ、最後に
CLUSTER START SUCCESSFULLY, Enjoy it ^-^
To connect TiDB: mysql --comments --host 127.0.0.1 --port 4001 -u root -p (no password)
To connect TiDB: mysql --comments --host 127.0.0.1 --port 4000 -u root -p (no password)
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
と表示されたら、成功です。
4. 別端末から、TiUPクライアントを使ってTiDBに接続
TiUPクライアントをインストール。
$ tiup client
エンドポイント選択画面で、4000を選択しました。
Choose a endpoint to connect
SqO0bRV mysql://root@127.0.0.1:4000
SqO0bRV mysql://root@127.0.0.1:4001
クライアントはmysqlドライバーが使用されているようです。
Connected with driver mysql (5.7.25-TiDB-v6.0.0)
Type "help" for help.
my:root@127.0.0.1:4000=>
試しに、showコマンド実行してみると
my:root@127.0.0.1:4000=> show databases;
Database
--------------------
INFORMATION_SCHEMA
METRICS_SCHEMA
PERFORMANCE_SCHEMA
mysql
test
(5 rows)
MySQLでお馴染みのデータベース一覧が表示されました。
TiDBはMySQLと親和性高そうです。
5. TiDBのPrometheusダッシュボード
Prometheus(プロメテウス)とは
- イベント監視とアラート通知に利用される無料のアプリケーション・ソフトウェア
- 時系列データベースをHTTPプル方式でリアルタイムに構築し、柔軟なクエリーとアラート機能を提供
ブラウザからhttp://127.0.0.1:9090
にアクセスします。
6. TiDBダッシュボード
ブラウザからhttp://127.0.0.1:2379/dashboard
にアクセスします。
デフォルトユーザはroot
、パスワードなしです。
7. TiDBのGrafanaダッシュボード
Grafana(グラファナ)とは
- 分析およびインタラクティブな可視化を可能とするWebアプリケーション
- オープンソースで、マルチプラットフォームで動作可能
- サポート対象データソースに接続し、Webブラウザ上でチャート/グラフ/アラート機能を提供
ブラウザからhttp://127.0.0.1:3000
にアクセスします。
デフォルトユーザーとパスワードともにadmin
。
8. (Optional)分析用データをTiFlashにロード
9. テスト終了時、TiDBクラスタの停止
Ctrl + C でプロセス停止してから、
以下のコマンドでクラスタをクリーンアップ。
tiup clean --all
終わりに
テスト用のTiDBクラスタ環境をサクッと構築できました。
次回は、本題のトランザクション検証を予定しています。
お楽しみに。