@TOC

前言

tiup 镜像为部署集群或通过 tiup 执行相关工具的源,可以是本地的离线镜像(本地的一个目录)或远程镜像(官方镜像 https://tiup-mirrors.pingcap.com)。

TiUP 安装

在 TiDB 官方文档中,建议联网安装 TiUP 组件:

1
[root@lucifer ~]# curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

但是很多内网环境不支持外网连接,即使是临时开通部署后,后续运维也可能会遇到报错:

1
failed to start: fetch /timestamp.json from mirror(https://tiup-mirrors.pingcap.com) failed: download from https://tiup-mirrors.pingcap.com/timestamp.json failed: Get “https://tiup-mirrors.pingcap.com/timestamp.json”: dial tcp: lookup tiup-mirrors.pingcap.com on 114.114.114.114:53: read udp 192.168.52.2:44673->114.114.114.114:53: i/o timeout

查看镜像源配置:

1
2
3
## 代表为官方镜像源
[root@lucifer ~]# tiup mirror show
https://tiup-mirrors.pingcap.com

建议内网环境部署完成后,切换为本地离线镜像源,方便运维。

离线部署

准备 TiUP 离线组件包

首先,找一台可以连接外网的主机,在线安装 TiUP 包管理器工具:

1
[root@lucifer ~]# curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

确保 tiup 已经成功安装:

1
2
3
4
5
6
[root@lucifer ~]# source .bash_profile
[root@lucifer ~]# tiup --version
1.16.2 tiup
Go Version: go1.21.13
Git Ref: v1.16.2
GitHash: 678c52de0c0ef30634b8ba7302a8376caa95d50d

使用 tiup mirror clone 命令手动拉取需要的组件:

1
2
3
## 定义对应版本,我这里是 v8.5.3
[root@lucifer ~]# version=v8.5.3
[root@lucifer ~]# tiup mirror clone tidb-community-server-${version}-linux-amd64 ${version} --os=linux --arch=amd64

通过 tar 命令打包离线组件包:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
[root@lucifer ~]# tar czvf tidb-community-server-${version}-linux-amd64.tar.gz tidb-community-server-${version}-linux-amd64
tidb-community-server-v8.5.3-linux-amd64/
tidb-community-server-v8.5.3-linux-amd64/prometheus-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/tispark-v2.4.1-any-any.tar.gz
tidb-community-server-v8.5.3-linux-amd64/alertmanager-v0.26.0-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/PCC-v1.0.2-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/insight-v0.4.2-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/82.tikv-importer.json
tidb-community-server-v8.5.3-linux-amd64/3738.dmctl.json
tidb-community-server-v8.5.3-linux-amd64/1.index.json
tidb-community-server-v8.5.3-linux-amd64/5768.grafana.json
tidb-community-server-v8.5.3-linux-amd64/dmctl-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/influxdb-v2.5.0-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/pd-recover-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/demo-v0.0.11-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/spark-v2.4.3-any-any.tar.gz
tidb-community-server-v8.5.3-linux-amd64/715.bench.json
tidb-community-server-v8.5.3-linux-amd64/183.sync-diff-inspector.json
tidb-community-server-v8.5.3-linux-amd64/1180.tiup.json
tidb-community-server-v8.5.3-linux-amd64/pd-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/tiproxy-v1.3.2-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/tiflash-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/6953.pd-recover.json
tidb-community-server-v8.5.3-linux-amd64/tiup-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/11283.dumpling.json
tidb-community-server-v8.5.3-linux-amd64/4863.pump.json
tidb-community-server-v8.5.3-linux-amd64/10.errdoc.json
tidb-community-server-v8.5.3-linux-amd64/blackbox_exporter-v0.23.0-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/sync-diff-inspector-v9.0.0-beta.1-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/drainer-v8.3.0-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/server-v1.16.2-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/9609.ctl.json
tidb-community-server-v8.5.3-linux-amd64/tikv-importer-v4.0.2-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/9.blackbox_exporter.json
tidb-community-server-v8.5.3-linux-amd64/package-v0.0.9-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/tidb-lightning-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/11.PCC.json
tidb-community-server-v8.5.3-linux-amd64/cluster-v1.16.2-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/dm-master-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/snapshot.json
tidb-community-server-v8.5.3-linux-amd64/17.tispark.json
tidb-community-server-v8.5.3-linux-amd64/pump-v8.3.0-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/dba-v1.0.4-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/tidb-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/6.tikv-br.json
tidb-community-server-v8.5.3-linux-amd64/br-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/40.demo.json
tidb-community-server-v8.5.3-linux-amd64/11356.tidb-lightning.json
tidb-community-server-v8.5.3-linux-amd64/1.root.json
tidb-community-server-v8.5.3-linux-amd64/diag-v1.6.0-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/3.package.json
tidb-community-server-v8.5.3-linux-amd64/tikv-cdc-v1.1.1-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/18.insight.json
tidb-community-server-v8.5.3-linux-amd64/7.alertmanager.json
tidb-community-server-v8.5.3-linux-amd64/6950.cdc.json
tidb-community-server-v8.5.3-linux-amd64/bench-v1.12.0-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/pushgateway-v0.7.0-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/keys/
tidb-community-server-v8.5.3-linux-amd64/keys/260cacafffd26c47-snapshot.json
tidb-community-server-v8.5.3-linux-amd64/keys/518ba018508a1d66-root.json
tidb-community-server-v8.5.3-linux-amd64/keys/aac1ca97e377f6d2-root.json
tidb-community-server-v8.5.3-linux-amd64/keys/5aceabfad76e9981-index.json
tidb-community-server-v8.5.3-linux-amd64/keys/8c45deaddd757516-pingcap.json
tidb-community-server-v8.5.3-linux-amd64/keys/7b0cbab4be036527-timestamp.json
tidb-community-server-v8.5.3-linux-amd64/keys/dc36ee9e5bc7dcd9-root.json
tidb-community-server-v8.5.3-linux-amd64/dm-v1.16.2-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/4834.drainer.json
tidb-community-server-v8.5.3-linux-amd64/1089.playground.json
tidb-community-server-v8.5.3-linux-amd64/1030.server.json
tidb-community-server-v8.5.3-linux-amd64/1014.client.json
tidb-community-server-v8.5.3-linux-amd64/6966.pd.json
tidb-community-server-v8.5.3-linux-amd64/3749.dm-master.json
tidb-community-server-v8.5.3-linux-amd64/5.pushgateway.json
tidb-community-server-v8.5.3-linux-amd64/tikv-br-v1.1.0-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/tikv-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/ctl-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/764.tiproxy.json
tidb-community-server-v8.5.3-linux-amd64/6374.tiflash.json
tidb-community-server-v8.5.3-linux-amd64/dm-worker-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/5.chaosd.json
tidb-community-server-v8.5.3-linux-amd64/root.json
tidb-community-server-v8.5.3-linux-amd64/3747.dm-worker.json
tidb-community-server-v8.5.3-linux-amd64/errdoc-v4.0.7-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/tidb-dashboard-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/5821.prometheus.json
tidb-community-server-v8.5.3-linux-amd64/7.influxdb.json
tidb-community-server-v8.5.3-linux-amd64/4.dba.json
tidb-community-server-v8.5.3-linux-amd64/playground-v1.16.2-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/1077.dm.json
tidb-community-server-v8.5.3-linux-amd64/dumpling-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/chaosd-v1.1.1-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/grafana-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/2.spark.json
tidb-community-server-v8.5.3-linux-amd64/local_install.sh
tidb-community-server-v8.5.3-linux-amd64/client-v1.16.2-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/4.tikv-cdc.json
tidb-community-server-v8.5.3-linux-amd64/tiup-v1.16.2-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/113.cloud.json
tidb-community-server-v8.5.3-linux-amd64/cdc-v8.5.3-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/1173.cluster.json
tidb-community-server-v8.5.3-linux-amd64/6604.tikv.json
tidb-community-server-v8.5.3-linux-amd64/9.node_exporter.json
tidb-community-server-v8.5.3-linux-amd64/cloud-v1.0.0-beta.5-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/timestamp.json
tidb-community-server-v8.5.3-linux-amd64/2240.diag.json
tidb-community-server-v8.5.3-linux-amd64/node_exporter-v1.5.0-linux-amd64.tar.gz
tidb-community-server-v8.5.3-linux-amd64/482.tidb-dashboard.json
tidb-community-server-v8.5.3-linux-amd64/11366.br.json
tidb-community-server-v8.5.3-linux-amd64/11059.tidb.json

[root@lucifer ~]# ll tidb-community-server-v8.5.3-linux-amd64.tar.gz
-rw-r--r-- 1 root root 3207855391 Aug 26 09:53 tidb-community-server-v8.5.3-linux-amd64.tar.gz

此时,tidb-community-server-v8.5.3-linux-amd64.tar.gz 就是一个独立的离线环境包。

部署离线环境 TiUP 组件

将离线包发送到目标集群的中控机:

1
2
3
[root@prod1 ~]# scp 192.168.31.222:/data/tidb-community-server-v8.5.3-linux-amd64.tar.gz .
root@192.168.31.222's password:
tidb-community-server-v8.5.3-linux-amd64.tar.gz 100% 3059MB 160.0MB/s 00:19

执行以下命令安装 TiUP 组件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
## 解压离线环境包
[root@prod1 ~]# tar -xf tidb-community-server-v8.5.3-linux-amd64.tar.gz

## local_install.sh 脚本会自动执行设置当前镜像地址为离线镜像源
[root@prod1 ~]# sh tidb-community-server-v8.5.3-linux-amd64/local_install.sh

Detected shell: bash
Shell profile: /root/.bash_profile

✔ Installed in /root/.tiup/bin/tiup
✔ tiup PATH is already set, skip

tiup is installed now 🎉

Next step:

1: To make PATH change effective, restart your shell or execute:
source /root/.bash_profile

2: Start a local TiDB for development:
tiup playground

## 生效环境变量
[root@prod1 ~]# source /root/.bash_profile

查看 tiup 版本:

1
2
3
4
5
[root@prod1 ~]# tiup --version
1.16.2 v1.16.2-nightly-39
Go Version: go1.24.1
Git Ref: master
GitHash: f6aa0ac09b9d6405929c2cea3c0207880e53d199

查看可用组件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
[root@prod1 ~]# tiup list
Available components:
Name Owner Description
---- ----- -----------
PCC pingcap A tool used to capture plan changes among different versions of TiDB
alertmanager pingcap Prometheus alertmanager
bench pingcap Benchmark database with different workloads
blackbox_exporter pingcap Blackbox prober exporter
br pingcap TiDB/TiKV cluster backup restore tool.
cdc pingcap CDC is a change data capture tool for TiDB
chaosd pingcap An easy-to-use Chaos Engineering tool used to inject failures to a physical node
client pingcap Client to connect playground
cloud pingcap CLI tool to manage TiDB Cloud
cluster pingcap Deploy a TiDB cluster for production
ctl pingcap TiDB controller suite
dba pingcap dbatoolset
demo pingcap The dataset import tools for the demo of TiDB
diag pingcap Clinic client for data collection and quick health check
dm pingcap Data Migration Platform manager
dm-master pingcap dm-master component of Data Migration Platform.
dm-worker pingcap dm-worker component of Data Migration Platform.
dmctl pingcap dmctl component of Data Migration Platform.
drainer pingcap The drainer componet of TiDB binlog service
dumpling pingcap Dumpling is a CLI tool that helps you dump MySQL/TiDB data.
errdoc pingcap Document about TiDB errors
grafana pingcap Grafana is the open source analytics \u0026 monitoring solution for every database
influxdb pingcap InfluxDB
insight pingcap TiDB-Insight collector
node_exporter pingcap Exporter for machine metrics
package pingcap A toolbox to package tiup component
pd pingcap PD is the abbreviation for Placement Driver. It is used to manage and schedule the TiKV cluster.
pd-recover pingcap PD Recover is a disaster recovery tool of PD, used to recover the PD cluster which cannot start or provide services normally.
playground pingcap Bootstrap a local TiDB cluster for fun
prometheus pingcap The Prometheus monitoring system and time series database
pump pingcap The pump componet of TiDB binlog service
pushgateway pingcap Push acceptor for ephemeral and batch jobs
server pingcap TiUP publish/cache server
spark pingcap Spark is a fast and general cluster computing system for Big Data
sync-diff-inspector pingcap sync-diff-inspector is a tool used to verify the consistency across different MySQL-compatible data sources.
tidb pingcap TiDB is an open source distributed HTAP database compatible with the MySQL protocol.
tidb-dashboard pingcap TiDB Dashboard is a Web UI for monitoring, diagnosing, and managing the TiDB cluster
tidb-lightning pingcap TiDB Lightning is a tool used for fast full import of large amounts of data into a TiDB cluster
tiflash pingcap The TiFlash Columnar Storage Engine
tikv pingcap Distributed transactional key-value database, originally created to complement TiDB.
tikv-br pingcap TiKV cluster backup restore tool
tikv-cdc pingcap TiKV-CDC is a change data capture tool for TiKV
tikv-importer pingcap
tiproxy pingcap TiProxy is a database proxy that is based on TiDB.
tispark pingcap tispark
tiup pingcap TiUP is a command-line component management tool that can help to download and install TiDB platform components to the local system

检查当前镜像源:

1
2
[root@prod1 ~]# tiup mirror show
/root/tidb-community-server-v8.5.3-linux-amd64

已经切换为本地离线镜像源。