Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【NewSQL】アプリケーション開発観点からのTiDB - Ruby編その2

【NewSQL】アプリケーション開発観点からのTiDB - Ruby編その2

このスライドでは、アプリケーション開発者やアーキテクトの方々に対して、TiDBというデータベースをアプリケーションからどのように利用するのか、他データベースからの移行にあたって、アプリケーション開発者の観点から考慮するべきかについてご紹介します。

PingCAP-Japan

April 22, 2022
Tweet

More Decks by PingCAP-Japan

Other Decks in Technology

Transcript

  1. TiDBハンズオン
    Yasuo Honda / 本多康夫
    Technical support engineer
    PingCAP Japan
    1

    View full-size slide

  2. アジェンダ
    1. ハンズオンの目的
    2. ハンズオン環境
    3. tiupのインストールとplaygroundの起動
    4. TiDBクラスタ定義(topology.yml)の作成とcheck
    5. TiDBクラスタのデプロイ
    6. TiDBクラスタの起動
    7. TiDBクラスタ情報の出力
    8. TiDBクラスタへの接続
    9. SQLの実行と実行計画の確認方法
    10. TiDBのモニタリング
    11. TiDBのバックアップとリストア
    12. (option) TiDBのアップグレード、TiDBのスケールアウト、プロセスの確認
    13. TiDBクラスタの停止
    14. TiDBクラスタの削除
    2

    View full-size slide

  3. ハンズオンの目的
    ● TiDBクラスタ環境を実際に作成、操作することで、TiDBを理解する手助けとなること
    ● Note: 今回利用している環境は、テスト環境としての基準を満たしていません。
    ○ 実際にお客様環境で適用される場合には、下記ドキュメントを参考にノード構成を設計ください。
    ○ Software and Hardware Recommendations
    3

    View full-size slide

  4. PingCAP.com
    TiDB 概要 - TiDB, TiKV and PD
    TiKV TiKV TiKV TiKV
    Raft Raft Raft
    TiDB TiDB TiDB
    ... ...
    ...
    ... ...
    Placement
    Driver (PD)
    Dashboard, Grafana
    etc
    メタデータ/タイムスタンプ管理
    SQLレイヤー(TiDB)
    分散Key Valueストア(TiKV)
    gRPC
    gRPC
    gRPC

    View full-size slide

  5. PingCAP.com
    今回作成する環境 - TiDB, TiKV, PDが1台ずつ
    TiKV TiKV TiKV
    Raft Raft
    TiDB
    ...
    ...
    Placement
    Driver (PD)
    Dashboard, Grafana
    etc
    メタデータ/タイムスタンプ管理
    SQLレイヤー(TiDB)
    分散Key Valueストア(TiKV)
    gRPC
    gRPC
    gRPC
    TiKVは時間に余裕があればスケールアウトして 3台構成にします

    View full-size slide

  6. ハンズオン環境
    ● 講師(PingCAP)側が利用している環境 on AWS
    ○ CentOS 7 (x86_64)
    ○ PD x 1
    ○ TiKV x 3
    ○ TiDB x 1
    ○ tiup x 1
    ● 受講者が利用している環境 on OpenStack
    ○ PD
    ○ TiKV
    ○ TiDB
    ○ tiup
    ● 必要となるソフトウェア/rpmパッケージ名
    ○ 必須: wget unzip mysql (このmysqlはmysql clientとなります。CentOSでのmysql clientでも
    mysql-community-clientのどちらでもかまいません)
    ○ 推奨: numactl haproxy
    ○ $ sudo yum instsall wget unzip mysql numactl hapxory
    6

    View full-size slide

  7. tiupのインストールとplaygroundの起動
    ● tiup(タイアップ)とは
    ○ TiDBをインストール、管理するためのツール
    ● tiupのインストールと playgroundの起動
    $ curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
    $ source .bash_profile
    $ which tiup # ~/.tiup/bin/tiup の結果が返ること
    $ tiup playground --tiflash 0 v5.2.2
    ● 確認項目: 下記出力が緑色の文字で出力されていることを確認します
    CLUSTER START SUCCESSFULLY, Enjoy it ^-^
    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]
    To view the Prometheus: http://127.0.0.1:9090
    To view the Grafana: http://127.0.0.1:3000
    ● Note: tiup playgroundの起動中は、コマンドプロンプトには戻りません。
    ● そのターミナルはそのままにし、もう一つのターミナルを開きます
    7

    View full-size slide

  8. tiupのインストールとplaygroundの起動
    ● playgroundへの接続(もう一つ別のターミナルで)
    $ mysql --comments --host 127.0.0.1 --port 4000 -u root -p
    Enter password: <そのまま改行>
    ● 確認項目: tidb_version() でバージョン番号が出力されることを確認します
    mysql> select tidb_version()\G
    *************************** 1. row ***************************
    tidb_version(): Release Version: v5.2.2
    ● playgroundの停止
    ○ MySQLクライアントを切断(exit)します
    mysql> exit
    Bye
    ○ 元のターミナルで Control-C でplaygroundを停止します
    ● 参考: Quick Start Guide for the TiDB Database Platform
    8

    View full-size slide

  9. tiupを利用してTiDBクラスタを起動する流れ
    1. TiDBクラスタ定義(topology.yml)の作成
    2. TiDBクラスタ定義のチェック(tiup cluster check cluster)
    3. TiDBクラスタのデプロイ(tiup cluster deploy)
    4. TiUPクラスタの起動(tiup cluster start)
    9

    View full-size slide

  10. TiDBクラスタ定義(topology.yml)の作成
    ● TiUPクラスタ定義テンプレートの確認します
    ○ $ tiup cluster template | more
    ○ この出力はコメントや詳細な設定項目が多いため、今回は利用しません
    ● 今回の例では、下記のtopology.ymlを利用します
    $ more topology.yaml
    global:
    user: "tidb"
    ssh_port: 22
    deploy_dir: "/tidb-deploy"
    data_dir: "/tidb-data"
    pd_servers:
    - host: 172.31.42.157
    tidb_servers:
    - host: 172.31.36.196
    tikv_servers:
    - host: 172.31.17.113
    monitoring_servers:
    - host: 172.31.42.157
    grafana_servers:
    - host: 172.31.42.157
    ● tiup cluster --template local > topology.yml と実行し、global以下のuser:, deploy_dir: , data_dir, 各servers: の-hostを書き換えて利用いただくことも可能です
    tiup cluster template --local --user tidb --pd-servers=$PD_SERVER --tidb-servers=$TIDB_SERVER --tikv-servers=$TIKV_SERVER --monitoring-servers=$PD_SERVER
    --grafana-servers=$PD_SERVER > topology.yaml
    10

    View full-size slide

  11. TiDBクラスタ定義(topology.yml)のcheck
    ● 作成されたTiDBクラスタ定義が正しく定義されているかチェックを行います。
    ● yamlファイルのcheckコマンド
    ○ $ tiup cluster check ./topology.yaml
    ○ $ tiup cluster check --apply ./topology.yamlを実行して、各ノードでの修正を行う
    ○ tiup cluster checkコマンド自体で修正可能な部分と各ノードに
    sshやansibleなどを利用して設定変更を行う部分があります
    ● 確認項目
    Node Check Result Message
    ---- ----- ------ -------
    172.31.42.157 os-version Pass OS is CentOS Linux 7 (Core) 7.9.2009
    172.31.42.157 cpu-cores Pass number of CPU cores / threads: 4
    172.31.42.157 memory Pass memory size is 16384MB
    172.31.42.157 disk Warn mount point / does not have 'noatime' option set
    172.31.42.157 disk Warn mount point / does not have 'noatime' option set
    ...
    ● Note: 今回のハンズオン環境では
    WarnやFailであってもそのままインストールを進める場合がありますが、実際のデプロイ時にはこれらの
    Warn、Failはかならず対処をお願いしま
    す。
    ○ 例: numactlやファイルシステムのnoatimeオプションなど
    11

    View full-size slide

  12. TiDBクラスタのデプロイ
    ● tiup cluster deploy <クラスタ名> <バージョン>
    ○ $ tiup cluster deploy tidb-test v5.1.2 ./topology.yaml
    ○ “Do you want to continue? [y/N]: (default=N)”で y を入力するとデプロイが始まります。
    ○ 現時点での最新バージョンは、v5.2.2ですが、後で行うアップグレードに備えてv5.1.2をデプロイします
    ● 確認項目: 下記のメッセージが出ればデプロイは成功です。
    ○ Cluster `tidb-test` deployed successfully, you can start it with command: `tiup cluster start tidb-test`
    12

    View full-size slide

  13. TiDBクラスタの起動
    ● TiDBクラスタの起動コマンド tiup cluster start <クラスタ名>
    ○ $ tiup cluster start tidb-test
    ● 確認事項: 下記のメッセージが出れば起動は成功です。
    ○ Started cluster `tidb-test` successfully
    13

    View full-size slide

  14. TiDBクラスタ情報の出力
    ● クラスタの詳細情報の出力 tiup cluster display <クラスタ名>
    $ tiup cluster display tidb-test
    ● 確認事項
    Cluster type: tidb
    Cluster name: tidb-test
    Cluster version: v5.1.2
    Deploy user: tidb
    SSH type: builtin
    Dashboard URL: http://172.31.42.157:2379/dashboard
    ID Role Host Ports OS/Arch Status Data Dir Deploy Dir
    -- ---- ---- ----- ------- ------ -------- ----------
    172.31.42.157:3000 grafana 172.31.42.157 3000 linux/x86_64 Up - /tidb-deploy/grafana-3000
    172.31.42.157:2379 pd 172.31.42.157 2379/2380 linux/x86_64 Up|L|UI /tidb-data/pd-2379 /tidb-deploy/pd-2379
    172.31.42.157:9090 prometheus 172.31.42.157 9090 linux/x86_64 Up /tidb-data/prometheus-9090
    /tidb-deploy/prometheus-9090
    172.31.36.196:4000 tidb 172.31.36.196 4000/10080 linux/x86_64 Up - /tidb-deploy/tidb-4000
    172.31.17.113:20160 tikv 172.31.17.113 20160/20180 linux/x86_64 Up /tidb-data/tikv-20160 /tidb-deploy/tikv-20160
    14

    View full-size slide

  15. TiDBへの接続
    ● TiDBへの接続
    ○ TiDBはMySQL 5.7プロトコルと互換性があります (詳細MySQL Compatibility)
    ○ TiDBへはTiDBノード経由でMySQLクライアント(mysqlコマンドなど)で接続できます
    ● 確認項目
    $ tiup cluster display tidb-test -R tidb のHost列からTiDBノードのIPアドレスを確認します
    $ export TIDB_SERVER=172.31.36.196 # 上記で確認したご自身のTiDBサーバーのIPアドレスを設定してください
    $ mysql -h $TIDB_SERVER -P 4000 -u root
    (例)
    $ mysql -h $TIDB_SERVER -P 4000 -u root
    mysql> select tidb_version()\G
    *************************** 1. row ***************************
    tidb_version(): Release Version: v5.1.2
    15

    View full-size slide

  16. テスト用のbikeshareデータベースの作成
    ● bikeshareデータベースの作成
    ○ $ export TIDB_SERVER=172.31.36.196 # tiup cluster display tidb-test -R tidb で出力された値
    ○ $ mysql -h $TIDB_SERVER -P 4000 -u root -p (パスワードなしでそのままリターン )
    CREATE DATABASE bikeshare;
    USE bikeshare;
    CREATE TABLE trips (
    trip_id bigint NOT NULL PRIMARY KEY AUTO_INCREMENT,
    duration integer not null,
    start_date datetime,
    end_date datetime,
    start_station_number integer,
    start_station varchar(255),
    end_station_number integer,
    end_station varchar(255),
    bike_number varchar(255),
    member_type varchar(255)
    );
    16

    View full-size slide

  17. bikeshareへのデータファイルのインポート
    ● データファイルのダウンロード
    mkdir -p bikeshare-data && cd bikeshare-data
    curl -L --remote-name-all https://s3.amazonaws.com/capitalbikeshare-data/{2015..2017}-capitalbikeshare-tripdata.zip
    unzip \*-tripdata.zip
    ● データファイルのインポート
    ○ export TIDB_SERVER1=172.31.36.196 # ご利用のTiDBサーバーの値に置き換えてください
    for FILE in *.csv; do echo "== $FILE =="; mysql --host ${TIDB_SERVER1} --port 4000 -u root bikeshare
    --local-infile=1 -e "SET tidb_dml_batch_size = 20000; LOAD DATA LOCAL INFILE '${FILE}' INTO TABLE trips
    FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (duration,
    start_date, end_date, start_station_number, start_station, end_station_number, end_station, bike_number,
    member_type);"; done;
    ● bikeshareの詳細
    Import Example Database 参照
    17

    View full-size slide

  18. TiDBダッシュボードの接続方法
    ● TiDB Dashboardのアドレス確認方法
    ○ $ tiup cluster display tidb-test --dashboard
    ● ブラウザで TiDB Dashboardを開きます
    ○ http://<ダッシュボードIPアドレス>:2379/dashboard
    ○ Username root
    ○ Passwordは設定されていません
    ○ “Sign In”をクリック
    ● DashboardのIPアドレスがご利用のPCからネットワーク的に接続できない場合
    ○ 次のページでのHAProxyを設定し、tiupノードにproxyを起動します
    18

    View full-size slide

  19. Dashboardに接続できない場合 - HAProxy
    ● tiupがインストールされているノード
    (tiupと共用可能)にHAProxyをインストールします
    ○ sudo yum -y install haproxy
    ● HAProxyの設定を追加します
    ○ sudo vi /etc/haproxy/haproxy.cfg
    frontend tidb_dashboard_front
    bind *:8033
    use_backend tidb_dashboard_back if { path /dashboard } or { path_beg /dashboard/ }
    backend tidb_dashboard_back
    mode http
    server tidb_dashboard 172.31.42.157:2379
    ○ 172.31.42.157:2379 の部分は、tiup cluster display tidb-test --dashboard で出力されたDashboard URLのIPアドレスとポート番号に置き換え
    ● HAProxyを再起動します
    ○ sudo systemctl restart haproxy
    ● HAProxyが稼働している
    IPアドレスとポート番号に置き換えます
    ○ http://:8033/dashboard
    19

    View full-size slide

  20. TiDBダッシュボードからSQLの確認方法
    ● TiDB Dashboardの左側のメニューから「SQL Statements」を選択します
    ● 確認項目
    ○ 任意のSQLをクリックします
    ○ Execution Planから青色のExpandをクリックします
    ○ SQLの実行計画を確認します
    ○ EXPLAIN Overview | PingCAP Docs を参照ください
    20

    View full-size slide

  21. TiDBのモニタリング - Prometheus
    ● TiDBのモニタリング
    ○ Grafana
    ○ Prometheus
    ● Prometheusダッシュボードの確認
    ○ $ tiup cluster display tidb-test -R prometheus
    ○ 172.31.42.157:9090 prometheus 172.31.42.157 9090 linux/x86_64 Up /tidb-data/prometheus-9090
    /tidb-deploy/prometheus-9090
    ● 確認事項
    ○ 出力されたIPアドレス(例では172.31.42.157)のポート9090番にhttpプロトコルでブラウザ経由で接続します
    ○ Note: ブラウザが動作しているPCからPrometheusサーバーの9090番ポートが開いている必要があります。
    21

    View full-size slide

  22. TiDBのモニタリング - Grafana
    ● Grafanaダッシュボードの確認
    ○ $ tiup cluster display tidb-test -R grafana
    ○ 172.31.42.157:3000 grafana 172.31.42.157 3000 linux/x86_64 Up - /tidb-deploy/grafana-3000
    ○ 出力されたGrafanaサーバーのIPアドレスのポート3000番にブラウザで接続する
    ○ Note: ブラウザが動作しているPCからGrafanaサーバーの3000番ポートが開いている必要があります。
    ● 確認事項
    ○ Username/Passwordともに admin でログインできることを確認します
    22

    View full-size slide

  23. Prometheus/Grafanaに接続できない場合
    ● HAProxyの設定を追加します
    ○ sudo vi /etc/haproxy/haproxy.cfg
    # Prometheus
    frontend tidb_prometheus_front
    bind *:8034
    use_backend tidb_prometheus_back
    backend tidb_prometheus_back
    mode http
    server tidb_dashboard 172.31.42.157:9090
    # Grafana
    frontend tidb_grafana_front
    bind *:8035
    use_backend tidb_grafana_back
    backend tidb_grafana_back
    mode http
    server tidb_dashboard 172.31.42.157:3000
    ○ 172.31.42.157:9090 の部分は、tiup cluster display tidb-test -R prometheus で出力されたIPアドレスとポート(9090)に置き換えます
    ○ 172.31.42.157:3000 の部分は、tiup cluster display tidb-test -R grafanaで出力されたIPアドレスとポート(3000)に置き換えます
    ● HAProxyを再起動します
    ○ sudo systemctl restart haproxy
    ● HAProxyが稼働しているIPアドレスとポート番号に置き換えます
    ○ http://:8034 http://:8035
    23

    View full-size slide

  24. TiDBのバックアップとリストア
    ● TiDBのバックアップ
    ○ 論理的 : dumpling
    ■ (狭義の)TiDBを通じて、論理的なバックアップファイルを作成します
    ○ 物理バックアップ: BR Tool BR Tool Overview | PingCAP Docs
    ■ TiKVから SSTファイル(TiKVのバックエンドとして利用しているRocksDBのファイル)としてバックアップ
    ● TiDBのリストア
    ○ 論理リストア: mysqlクライアント, TiDB Lightning
    ○ 物理リストア: BR Tool
    24

    View full-size slide

  25. TiDBの論理バックアップ
    ● dumplingのインストール
    $ tiup install dumpling
    ● dumplingの起動
    ○ $ export TIDB_SERVER=172.31.36.196 # ご自分の環境に合わせて変更してください
    $ tiup dumpling -u root -P 4000 --host $TIDB_SERVER --filetype sql -o /tmp/tidb-test.backup
    ● 確認方法
    ○ -o で指定したディレクトリ以下にファイルが生成されていることを確認します
    $ ls -lh /tmp/tidb-test.backup
    total 1.4G
    -rw-rw-r-- 1 centos centos 100 Oct 18 01:51 bikeshare-schema-create.sql
    -rw-rw-r-- 1 centos centos 1.4G Oct 18 01:51 bikeshare.trips.000000000.sql
    -rw-rw-r-- 1 centos centos 617 Oct 18 01:51 bikeshare.trips-schema.sql
    -rw-rw-r-- 1 centos centos 146 Oct 18 01:51 metadata
    -rw-rw-r-- 1 centos centos 95 Oct 18 01:51 test-schema-create.sql
    25

    View full-size slide

  26. TiDBの論理リストア
    ● TiDBの論理リストア事前準備
    (件数の確認とbikeshareデータベースの削除
    )
    ○ 今回は通常のmysqlクライアントを利用して
    SQLスクリプトをリストアします
    mysql --host $TIDB_SERVER --port 4000 -u root
    mysql> use bikeshare;
    mysql> select count(*) from trips;
    +----------+
    | count(*) |
    +----------+
    | 10277677 |
    +----------+
    1 row in set (1.96 sec)
    mysql> use test;
    mysql> drop database bikeshare;
    Query OK, 0 rows affected (0.21 sec)
    ● TiDBの論理リストア実行
    $ mysql --host $TIDB_SERVER --port 4000 -u root < /tmp/tidb-test.backup/bikeshare-schema-create.sql
    $ mysql --host $TIDB_SERVER --port 4000 -u root bikeshare < /tmp/tidb-test.backup/bikeshare.trips-schema.sql
    $ mysql --host $TIDB_SERVER --port 4000 -u root bikeshare < /tmp/tidb-test.backup/bikeshare.trips.000000000.sql
    ● TiDB Lightningを利用してリストアする方法もあります
    26

    View full-size slide

  27. TiDBの物理バックアップ
    ● TiKVノードにsshします
    $ tiup cluster display tidb-test -R pd で出力されるHostを記録
    $ tiup cluster display tidb-test -R tikv で出力されるHostを記録
    $ ssh 172.31.17.113 #TiKVサーバー
    ● BRコマンドラインのインストール
    ○ TiKVノードにログインした状態で行います。
    $ wget http://download.pingcap.org/tidb-toolkit-v5.1.2-linux-amd64.tar.gz
    $ gunzip tidb-toolkit-v5.1.2-linux-amd64.tar.gz
    $ tar xvf tidb-toolkit-v5.1.2-linux-amd64.tar
    ● バックアップディレクトリを作成
    $ mkdir -p /tmp/backup
    $ sudo chmod -R 777 /tmp/backup/ (tidbユーザーとしてsshしていない場合のみ
    )
    ● バックアップの実行
    `PD_SERVER`変数には、tiup cluster display tidb-test -R pd で出力されるHostを入力します
    $ export PD_SERVER=172.31.42.157
    $ cd tidb-toolkit-v5.1.2-linux-amd64/bin/
    $ ./br backup full --pd "${PD_SERVER}:2379" -s "local:///tmp/backup"
    ● 確認方法
    ○ ls -l /tmp/backupでsstファイルが作成されていることを確認します
    27

    View full-size slide

  28. TiDBの物理リストア
    ● リストアを検証するためbikeshareデータベースをdropします
    ○ tiupノードでmysqlコマンドを起動します
    $ export TIDB_SERVER=172.31.36.196 # 上記で確認したご自身のTiDBサーバーのIPアドレスを設定してください
    $ mysql -h $TIDB_SERVER -P 4000 -u root
    mysql>
    Query OK, 0 rows affected (0.21 sec)
    ● BRを利用してbikeshareデータベースをリストアします
    (PDにはPDが稼働しているIPアドレスを設定ください)
    ○ TiKVノードにログインした状態で行います。
    $ export PD_SERVER=172.31.42.157
    $ cd ~/tidb-toolkit-v5.1.2-linux-amd64/bin/
    $ ./br restore db --pd "${PD_SERVER}:2379" --db "bikeshare" --ratelimit 128 --storage "local:///tmp/backup" --log-file restorefull.log
    ● 確認方法
    ○ $ mysql -h $TIDB_SERVER -P 4000 -u root
    ○ mysql> use bikeshare;
    mysql> select count(*) from trips;
    +----------+
    | count(*) |
    +----------+
    | 10277677 |
    +----------+
    1 row in set (5.16 sec)
    28

    View full-size slide

  29. option項目
    ● スケールアウト
    ○ 追加ノードが準備できた場合
    ● TiDBのアップグレード
    ○ i.e. v5.1.2からv5.2.2など
    ● 各ノードでのプロセスの確認
    ○ pd, tikv, tidbが稼働しているノードにsshしてログやsystemctlコマンドでサービスを確認する
    29

    View full-size slide

  30. (option) TiDBのアップグレード
    ● オンラインアップグレードコマンド : $ tiup cluster upgrade <クラスタ名> <バージョン>
    ○ $ tiup cluster upgrade tidb-test v5.2.2
    ○ Do you want to continue? [y/N]:(default=N) y を入力します
    ● 確認項目1: 下記のメッセージが出れば起動は成功です
    ○ Upgraded cluster `tidb-test` successfully
    ● 確認項目2: MySQLクライアントで接続し、バージョン番号が v5.2.2となっていることを確認します
    $ export TIDB_SERVER=172.31.36.196 # 上記で確認したご自身のTiDBサーバーのIPアドレスを設定してください
    $ mysql -h $TIDB_SERVER -P 4000 -u root
    mysql> select tidb_version()\G
    *************************** 1. row ***************************
    tidb_version(): Release Version: v5.2.2
    ● 補足
    ○ 今回のハンズオンでは、アップグレードに必要な事前確認項目を省略しています。
    ○ 実際のアップグレードに当たっては、 Upgrade TiDB Using TiUP を参照ください
    30

    View full-size slide

  31. (option) TiDBのスケールアウト
    ● TiDBのスケールアウト(例: TiKVノードを1から3に増やす)
    ● yamlファイルの準備
    ○ more scale_out.yaml
    tikv_servers:
    - host: 172.31.18.9
    - host: 172.31.22.11
    ● スケールアウトコマンド: tiup cluster scale-out <クラスタ名>
    $ tiup cluster scale-out tidb-test ./scale_out.yaml
    Do you want to continue? [y/N]: (default=N) y を入力します
    ● 確認項目: 下記のメッセージが出れば起動は成功です。
    Scaled cluster `tidb-test` out successfully
    tiup cluster display tidb-testコマンドでtikvロールを持つノードが2つ増えて3つになっています
    31

    View full-size slide

  32. (option) TiDBのスケールイン
    ● TiDBのスケールイン(例: TiKVノードを3から1に減らす)
    ○ tiup cluster scale-in
    ● スケールイン tiup cluster scale-in --node
    スケールインする(削除する)ノードは下記のようにして複数設定可能です。
    $ tiup cluster scale-in tidb-test --force --node 172.31.18.9:20160 --node 172.31.22.11:20160
    ● 確認項目: 下記のメッセージが出れば起動は成功です。
    Scaled cluster `tidb-test` in successfully
    tiup cluster display tidb-testコマンドでtikvロールを持つノードが2つ減って1つになっています
    32

    View full-size slide

  33. (option) 各ノードでのプロセスの確認
    ● PD, TiKV, TiDBの稼働する各ノードにsshして、サービス、プロセス、ログファイルを確認します
    ● PD
    ○ サービス :$ sudo systemctl status pd-2379.service
    ○ プロセス: $ pidof bin/pd-server
    ○ ログファイル: $ tail -f /tidb-deploy/pd-2379/log/pd.log
    ● TiKV
    ○ サービス : $ sudo systemctl status tikv-20160.service
    ○ プロセス: $ pidof bin/tikv-server
    ○ ログファイル : $ tail -f /tidb-deploy/tikv-20160/log/tikv.log
    ● TiDB
    ○ サービス : $ sudo systemctl status tidb-4000.service
    ○ プロセス: $ pidof bin/tidb-server
    ○ ログファイル: $ tail -f /tidb-deploy/tidb-4000/log/tidb.log
    33

    View full-size slide

  34. TiDBクラスタの停止
    ● TiDBクラスタの停止 tiup cluster stop <クラスタ名>
    $ tiup cluster stop tidb-test
    Do you want to continue? [y/N]:(default=N) y を入力する
    ● 確認事項
    ○ 下記のメッセージが出ればTiDBクラスタは停止しています。
    ○ Stopped cluster `tidb-test` successfully
    ● 停止されたTiDBクラスタはtiup cluster startコマンドで起動可能です。
    34

    View full-size slide

  35. TiDBクラスタの削除
    ● tiup cluster destroy <クラスタ名>
    $ tiup cluster destroy tidb-test
    Do you want to continue? [y/N]:(default=N) y を入力します
    ● 確認事項
    ○ 下記のメッセージが出ればTiDBクラスタは停止しています。
    ○ Destroyed cluster `tidb-test` successfully
    ● 削除(destroy)されたクラスタは起動できません。再度デプロイをする必要があります。
    35

    View full-size slide