天天看點

TiUP 常見運維操作

本文介紹了使用 TiUP 運維 TiDB 叢集的常見操作,包括檢視叢集清單、啟動叢集、檢視叢集狀态、修改配置參數、關閉叢集、銷毀叢集等。

檢視叢集清單

TiUP cluster 元件可以用來管理多個 TiDB 叢集,在每個 TiDB 叢集部署完畢後,該叢集會出現在 TiUP 的叢集清單裡,可以使用 list 指令來檢視。

Copy

tiup cluster list
           

啟動叢集

啟動叢集操作會按 PD -> TiKV -> Pump -> TiDB -> TiFlash -> Drainer 的順序啟動整個 TiDB 叢集所有元件(同時也會啟動監控元件):

Copy

tiup cluster start ${cluster-name}
           

注意:

你需要将 

${cluster-name}

 替換成實際的叢集名字,若忘記叢集名字,可通過 

tiup cluster list

 檢視。

該指令支援通過 

-R

 和 

-N

 參數來隻啟動部分元件。

例如,下列指令隻啟動 PD 元件:

Copy

tiup cluster start ${cluster-name} -R pd
           

下列指令隻啟動 

1.2.3.4

 和 

1.2.3.5

 這兩台機器上的 PD 元件:

Copy

tiup cluster start ${cluster-name} -N 1.2.3.4:2379,1.2.3.5:2379
           

注意:

若通過 

-R

 和 

-N

 啟動指定元件,需要保證啟動順序正确(例如需要先啟動 PD 才能啟動 TiKV),否則可能導緻啟動失敗。

檢視叢集狀态

叢集啟動之後需要檢查每個元件的運作狀态,以確定每個元件工作正常。TiUP 提供了 display 指令,節省了登陸到每台機器上去檢視程序的時間。

Copy

tiup cluster display ${cluster-name}
           

修改配置參數

叢集運作過程中,如果需要調整某個元件的參數,可以使用 

edit-config

 指令來編輯參數。具體的操作步驟如下:

  1. 以編輯模式打開該叢集的配置檔案:

    Copy

    tiup cluster edit-config ${cluster-name}
               
  2. 設定參數:

    首先确定配置的生效範圍,有以下兩種生效範圍:

    • 如果配置的生效範圍為該元件全局,則配置到 

      server_configs

      。例如:
      server_configs:
        tidb:
          log.slow-threshold: 300
                 
    • 如果配置的生效範圍為某個節點,則配置到具體節點的 

      config

       中。例如:
      tidb_servers:
      - host: 10.0.1.11
          port: 4000
          config:
              log.slow-threshold: 300
                 

    參數的格式參考 TiUP 配置參數模版。

    配置項層次結構使用 

    .

     表示。

    關于元件的更多配置參數說明,可參考 tidb 

    config.toml.example

    、tikv 

    config.toml.example

     和 pd 

    config.toml.example

  3. 執行 

    reload

     指令滾動分發配置、重新開機相應元件:

    Copy

    tiup cluster reload ${cluster-name} [-N <nodes>] [-R <roles>]
               

示例

如果要調整 tidb-server 中事務大小限制參數 

txn-total-size-limit

 為 

1G

,該參數位于 performance 子產品下,調整後的配置如下:

server_configs:
  tidb:
    performance.txn-total-size-limit: 1073741824
           

然後執行 

tiup cluster reload ${cluster-name} -R tidb

 指令滾動重新開機。

Hotfix 版本替換

正常的更新叢集請參考更新文檔,但是在某些場景下(例如 Debug),可能需要用一個臨時的包替換正在運作的元件,此時可以用 

patch

 指令:

Copy

tiup cluster patch --help
           
Replace the remote package with a specified package and restart the service

Usage:
  tiup cluster patch <cluster-name> <package-path> [flags]

Flags:
  -h, --help                   幫助資訊
  -N, --node strings           指定被替換的節點
      --overwrite              在未來的 scale-out 操作中使用目前指定的臨時包
  -R, --role strings           指定被替換的服務類型
      --transfer-timeout int   transfer leader 的逾時時間

Global Flags:
      --native-ssh        使用系統預設的 SSH 用戶端
      --wait-timeout int  等待操作逾時的時間
      --ssh-timeout int   SSH 連接配接的逾時時間
  -y, --yes               跳過所有的确認步驟
           

例如,有一個 TiDB 執行個體的 hotfix 包放在 

/tmp/tidb-hotfix.tar.gz

 目錄下。如果此時想要替換叢集上的所有 TiDB 執行個體,則可以執行以下指令:

Copy

tiup cluster patch test-cluster /tmp/tidb-hotfix.tar.gz -R tidb
           

或者隻替換其中一個 TiDB 執行個體:

Copy

tiup cluster patch test-cluster /tmp/tidb-hotfix.tar.gz -N 172.16.4.5:4000
           

重命名叢集

部署并啟動叢集後,可以通過 

tiup cluster rename

 指令來對叢集重命名:

Copy

tiup cluster rename ${cluster-name} ${new-name}
           
注意:
  • 重命名叢集會重新開機監控(Prometheus 和 Grafana)。
  • 重命名叢集之後 Grafana 可能會殘留一些舊叢集名的面闆,需要手動删除這些面闆。

關閉叢集

關閉叢集操作會按 Drainer -> TiFlash -> TiDB -> Pump -> TiKV -> PD 的順序關閉整個 TiDB 叢集所有元件(同時也會關閉監控元件):

Copy

tiup cluster stop ${cluster-name}
           

和 

start

 指令類似,

stop

 指令也支援通過 

-R

 和 

-N

 參數來隻停止部分元件。

例如,下列指令隻停止 TiDB 元件:

Copy

tiup cluster stop ${cluster-name} -R tidb
           

下列指令隻停止 

1.2.3.4

 和 

1.2.3.5

 這兩台機器上的 TiDB 元件:

Copy

tiup cluster stop ${cluster-name} -N 1.2.3.4:4000,1.2.3.5:4000
           

清除叢集資料

此操作會關閉所有服務,并清空其資料目錄或/和日志目錄,并且無法恢複,需要謹慎操作。

清空叢集所有服務的資料,但保留日志:

Copy

tiup cluster clean ${cluster-name} --data
           

清空叢集所有服務的日志,但保留資料:

tiup cluster clean ${cluster-name} --log
           

清空叢集所有服務的資料和日志:

Copy

tiup cluster clean ${cluster-name} --all 
           

清空 Prometheus 以外的所有服務的日志和資料:

Copy

tiup cluster clean ${cluster-name} --all --ignore-role prometheus
           

清空節點 

172.16.13.11:9000

 以外的所有服務的日志和資料:

Copy

tiup cluster clean ${cluster-name} --all --ignore-node 172.16.13.11:9000
           

清空部署在 

172.16.13.12

 以外的所有服務的日志和資料:

Copy

tiup cluster clean ${cluster-name} --all --ignore-node 172.16.13.12
           

銷毀叢集

銷毀叢集操作會關閉服務,清空資料目錄和部署目錄,并且無法恢複,需要謹慎操作。

Copy

tiup cluster destroy ${cluster-name}