本文介紹了使用 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
啟動指定元件,需要保證啟動順序正确(例如需要先啟動 PD 才能啟動 TiKV),否則可能導緻啟動失敗。
-N
檢視叢集狀态
叢集啟動之後需要檢查每個元件的運作狀态,以確定每個元件工作正常。TiUP 提供了 display 指令,節省了登陸到每台機器上去檢視程序的時間。
Copy
tiup cluster display ${cluster-name}
修改配置參數
叢集運作過程中,如果需要調整某個元件的參數,可以使用
edit-config
指令來編輯參數。具體的操作步驟如下:
-
以編輯模式打開該叢集的配置檔案:
Copy
tiup cluster edit-config ${cluster-name}
-
設定參數:
首先确定配置的生效範圍,有以下兩種生效範圍:
- 如果配置的生效範圍為該元件全局,則配置到
。例如: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
、tikvconfig.toml.example
和 pdconfig.toml.example
。config.toml.example
- 如果配置的生效範圍為該元件全局,則配置到
- 執行
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}