使用 TiUP 部署 TiDB 叢集
線上安裝
第一步:驗證環境
驗證埠是否被佔用
第二步:在中控機上安裝tiup元件
1、執行如下命令安裝 TiUP 工具:
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
2、按如下步驟設定 TiUP 環境變數:
重新宣告全域性環境變數:
source .bash_profile
確認tiup是否安裝成功
which tiup
3、安裝Tiup cluster元件
tiup cluster
4、如果已經安裝,則更新 TiUP cluster 元件至最新版本:
tiup update --self && tiup update cluster
輸出"Update successfully!”
代表更新成功
5、驗證當前 TiUP cluster 版本資訊。執行如下命令檢視 TiUP cluster 元件版本:
tiup --binary cluster
第三步:編輯初始化配置檔案
根據不同的叢集拓撲,編輯配置檔案模板
global: user: "tidb" ssh_port: 22 deploy_dir: "/tidb-deploy" data_dir: "/tidb-data" monitored: node_exporter_port: 9100 blackbox_exporter_port: 9115 server_configs: tidb: log.slow-threshold: 300 tikv: readpool.storage.use-unified-pool: false readpool.coprocessor.use-unified-pool: true pd: replication.enable-placement-rules: true pd_servers: - host: 10.0.0.176 client_port: 2389 peer_port: 2390 tidb_servers: - host: 10.0.0.176 tikv_servers: - host: 10.0.0.177 port: 20160 status_port: 20180 - host: 10.0.0.177 port: 20161 status_port: 20181 - host: 10.0.0.177 port: 20162 status_port: 20182 monitoring_servers: - host: 10.0.0.178 - port: 9092 grafana_servers: - host: 10.0.0.178
配置檔案命名為topology.yaml
第四步:執行部署命令
tiup cluster deploy tidb-test v4.0.0 ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
引數說明:
- 通過 TiUP cluster 部署的叢集名稱為
tidb-test
- 部署版本為
v4.0.0
,最新版本可以通過執行tiup list tidb
來檢視 TiUP 支援的版本 - 初始化配置檔案為
topology.yaml
- --user root:通過 root 使用者登入到目標主機完成叢集部署,該使用者需要有 ssh 到目標機器的許可權,並且在目標機器有 sudo 許可權。也可以用其他有 ssh 和 sudo 許可權的使用者完成部署。
- [-i] 及 [-p]:非必選項,如果已經配置免密登陸目標機,則不需填寫。否則選擇其一即可,[-i] 為可登入到目標機的 root 使用者(或 --user 指定的其他使用者)的私鑰,也可使用 [-p] 互動式輸入該使用者的密碼
可以採用
tiup cluster deploy tidb-test v4.0.0 ./topology.yaml --user root -p
後續輸入手動資料密碼
預期日誌結尾輸出會有 Deployed cluster
tidb-testsuccessfully
關鍵詞,表示部署成功。
第 5 步:檢視 TiUP 管理的叢集情況
tiup cluster list
第 6 步:檢查部署的 TiDB 叢集情況
tiup cluster display tidb-test
預期輸出包括 tidb-test
叢集中例項 ID、角色、主機、監聽埠和狀態(由於還未啟動,所以狀態為 Down/inactive)、目錄資訊。
第 7 步:啟動叢集
tiup cluster start tidb-test
預期結果輸出 Started cluster tidb-test
successfully標誌啟動成功。
第 8 步:驗證叢集執行狀態
tiup cluster display tidb-test
預期結果輸出,注意 Status 狀態資訊為 Up
說明叢集狀態正常
- 執行如下命令登入資料庫:
mysql -u root -h 10.0.1.4 -P 4000
離線安裝
1. 準備 TiUP 離線元件包
2. 部署離線環境 TiUP 元件
將離線包傳送到目標叢集的中控機後,執行以下命令安裝 TiUP 元件:
tar xzvf tidb-community-server-v4.0.0-linux-amd64.tar.gz &&
sh tidb-community-server-v4.0.0-linux-amd64/local_install.sh
source /home/tidb/.bash_profile
3. TiKV 資料盤掛載
注意:
推薦 TiKV 部署目標機器的資料目錄使用 EXT4 檔案系統格式。相比於 XFS 檔案系統格式,EXT4 檔案系統格式在 TiDB 叢集部署案例較多,生產環境優先選擇使用 EXT4 檔案系統格式。
使用 root
使用者登入目標機器,將部署目標機器資料盤格式化成 ext4 檔案系統,掛載時新增 nodelalloc
和 noatime
掛載引數。nodelalloc
是必選引數,否則 TiUP 安裝時檢測無法通過;noatime
是可選建議引數。
注意:
如果你的資料盤已經格式化成 ext4 並掛載了磁碟,可先執行 umount /dev/nvme0n1p1
命令解除安裝,從編輯 /etc/fstab
檔案步驟開始執行,添加掛載引數重新掛載即可。
以 /dev/nvme0n1
資料盤為例,具體操作步驟如下:
檢視資料盤。
fdisk -l
Disk /dev/nvme0n1: 107.4 GB
建立分割槽表。
parted -s -a optimal /dev/sdb mklabel gpt -- mkpart primary ext4 1 -1
注意:
使用
lsblk
命令檢視分割槽的裝置號:對於 nvme 磁碟,生成的分割槽裝置號一般為nvme0n1p1
;對於普通磁碟(例如/dev/sdb
),生成的的分割槽裝置號一般為sdb1
。格式化檔案系統。
mkfs.ext4 /dev/sdb
檢視資料盤分割槽 UUID。
lsblk -f
編輯
/etc/fstab
檔案,新增nodelalloc
掛載引數。vi /etc/fstab
UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 2
掛載資料盤。
mkdir /data1 && \ mount -a
執行以下命令,如果檔案系統為 ext4,並且掛載引數中包含
nodelalloc
,則表示已生效。mount -t ext4
/dev/nvme0n1p1 on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)
4. 配置初始化引數檔案 topology.yaml
cat topology.yaml
# # Global variables are applied to all deployments and used as the default value of
# # the deployments if a specific deployment value is missing.
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/tidb-deploy"
data_dir: "/tidb-data"
server_configs:
pd:
replication.enable-placement-rules: true
pd_servers:
- host: 10.0.1.4
- host: 10.0.1.5
- host: 10.0.1.6
tidb_servers:
- host: 10.0.1.7
- host: 10.0.1.8
- host: 10.0.1.9
tikv_servers:
- host: 10.0.1.1
- host: 10.0.1.2
- host: 10.0.1.3
monitoring_servers:
- host: 10.0.1.4
grafana_servers:
- host: 10.0.1.4
alertmanager_servers:
- host: 10.0.1.4
5. 部署 TiDB 叢集
/path/to/mirror
是執行 local_install.sh
命令時輸出的離線映象包的位置:
export TIUP_MIRRORS=/path/to/mirror &&
tiup cluster deploy tidb-test v4.0.0 topology.yaml --user tidb [-p] [-i /home/root/.ssh/gcp_rsa] &&
tiup cluster start tidb-test
引數說明:
通過 TiUP cluster 部署的叢集名稱為
tidb-test
部署版本為
v4.0.0
,其他版本可以執行tiup list tidb
獲取初始化配置檔案為
topology.yaml
--user tidb:通過 tidb 使用者登入到目標主機完成叢集部署,該使用者需要有 ssh 到目標機器的許可權,並且在目標機器有 sudo 許可權。也可以用其他有 ssh 和 sudo 許可權的使用者完成部署。
[-i] 及 [-p]:非必選項,如果已經配置免密登陸目標機,則不需填寫。否則選擇其一即可,[-i] 為可登入到部署機 root 使用者(或 --user 指定的其他使用者)的私鑰,也可使用 [-p] 互動式輸入該使用者的密碼
預期日誌結尾輸出會有 Deployed cluster
tidb-testsuccessfully
關鍵詞,表示部署成功。