参考地址: https://docs.pingcap.com/zh/tidb/dev/tiup-cluster
TIUP 常用命令
Usage:
tiup cluster [command]
Available Commands:
check 对集群进行预检
deploy 部署集群
start 启动已部署的集群
stop 停止集群
restart 重启集群
scale-in 集群缩容
scale-out 集群扩容
clean 清理数据
destroy 销毁集群
upgrade 升级集群
display 获取集群信息
list 获取集群列表
audit 查看集群操作日志
import 导入一个由 TiDB Ansible 部署的集群
edit-config 编辑 TiDB 集群的配置
reload 用于必要时重载集群配置
patch 使用临时的组件包替换集群上已部署的组件
help 打印 Help 信息
Flags:
-c, --concurrency int 最大并行任务数(默认值为 5)
--format string (实验特性) 输出的格式, 支持 [default, json] (默认值为 "default")
-h, --help 帮助信息
--ssh string (实验特性)SSH 执行类型,可选值为 'builtin'、'system'、'none'。
--ssh-timeout uint SSH 连接超时时间
-v, --version 版本信息
--wait-timeout uint 等待操作超时的时间
-y, --yes 跳过所有的确认步骤
TIUP 服务器时间必须一直
TiUP 查看系统架构
dpkg --print-architecture
amd64 --> amd64
TiUP 初始化集群拓扑文件
# 我这里使用的是 跨机房部署 TiDB 集群
tiup-cluster template --multi-dc > topology.yaml
配置如下
```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:
# 运行 tidb cluster 用户.
user: "tidb"
# group用于指定用户所属的组名,如果它与user不同的话。
# group: "tidb"
# 受管集群中服务器的SSH端口。
ssh_port: 22
# 集群部署文件、启动脚本和配置文件的存储目录。
deploy_dir: "/tidb-deploy"
# 集群数据存储目录
data_dir: "/tidb-data"
# 支持的系统值, "amd64" || "arm64" (default: "amd64")
arch: "amd64"
# 所有机器监控设置
monitored:
# 用于报告TiDB集群中每个节点的系统信息的通信端口。
node_exporter_port: 9100
# Blackbox_exporter通信端口,用于TiDB集群端口监控
blackbox_exporter_port: 9115
# 监控组件的部署文件、启动脚本和配置文件的存储目录
deploy_dir: "/tidb-deploy/monitored-9100"
# 监控组件的数据存储目录
data_dir: "/tidb-data/monitored-9100"
# 监控组件的日志存储目录
log_dir: "/tidb-deploy/monitored-9100/log"
# 全局服务配置
server_configs:
tidb:
log.level: debug
log.slow-query-file: tidb-slow.log
log.slow-threshold: 300
tikv:
# gRPC消息的压缩算法
server.grpc-compression-type: gzip
readpool.storage.use-unified-pool: true
readpool.storage.low-concurrency: 10
raftstore.raft-min-election-timeout-ticks: 1000
raftstore.raft-max-election-timeout-ticks: 1020
# tiflash:
# tiflash-learner:
pd:
# 标签级别设置
replication.location-labels: ["zone","host"]
# TiKV数据的副本数量
# replication.max-replicas: 3
# 禁止 leader 被安排到指定的标签地点。
# label-property:
# reject-leader:
# - key: "dc"
# value: "sha"
# 用于指定 PD 服务器的配置
pd_servers:
# PD 服务器地址
- host: 10.11.19.142
# 远程端口
# ssh_port: 22
# PD 服务器名字
name: "pd-1"
# TiDB服务器要连接的通信端口
client_port: 2379
# PD服务器节点之间的通信端口.
peer_port: 2380
# PD服务器部署文件、启动脚本、配置文件存储目录
deploy_dir: "/tidb-deploy/pd-2379"
# PD服务器数据存储目录
data_dir: "/tidb-data/pd-2379"
# PD服务器日志存储目录
log_dir: "/tidb-deploy/pd-2379/log"
# # numa节点绑定
# numa_node: "0,1"
# # The following configs are used to overwrite the `server_configs.pd` values.
# config:
# schedule.max-merge-region-size: 20
# schedule.max-merge-region-keys: 200000
- host: 10.11.19.143
# ssh_port: 22
name: "pd-2"
client_port: 2379
peer_port: 2380
deploy_dir: "/tidb-deploy/pd-2379"
data_dir: "/tidb-data/pd-2379"
log_dir: "/tidb-deploy/pd-2379/log"
# numa_node: "0,1"
# config:
# schedule.max-merge-region-size: 20
# schedule.max-merge-region-keys: 200000
- host: 10.11.19.144
# ssh_port: 22
name: "pd-3"
client_port: 2379
peer_port: 2380
deploy_dir: "/tidb-deploy/pd-2379"
data_dir: "/tidb-data/pd-2379"
log_dir: "/tidb-deploy/pd-2379/log"
# numa_node: "0,1"
# config:
# schedule.max-merge-region-size: 20
# schedule.max-merge-region-keys: 200000
# 服务器配置用于指定TiDB服务器的配置。
tidb_servers:
# TiDB 服务器 IP 地址
- host: 10.11.19.142
# 远程端口
# ssh_port: 22
# 访问TiDB集群端口
port: 4000
# TiDB服务器状态信息报告端口
status_port: 10080
# TiDB服务器部署文件,启动脚本,配置文件存储目录。
deploy_dir: "/tidb-deploy/tidb-4000"
# TiDB服务器日志文件存储目录
log_dir: "/tidb-deploy/tidb-4000/log"
- host: 10.11.19.143
ssh_port: 22
port: 4000
status_port: 10080
deploy_dir: "/tidb-deploy/tidb-4000"
log_dir: "/tidb-deploy/tidb-4000/log"
- host: 10.11.19.144
ssh_port: 22
port: 4000
status_port: 10080
deploy_dir: "/tidb-deploy/tidb-4000"
log_dir: "/tidb-deploy/tidb-4000/log"
# # Server configs are used to specify the configuration of TiKV Servers.
tikv_servers:
# TiKV 服务器IP地址
- host: 10.11.19.142
# 远程SSH端口
# ssh_port: 22
# TiKV 服务器通信端口
port: 20160
# 用于报告TiKV服务器状态的通信端口
status_port: 20180
# TiKV服务器部署文件,启动脚本,配置文件存储目录。
deploy_dir: "/tidb-deploy/tikv-20160"
# TiKV 服务器数据存储目录
data_dir: "/tidb-data/tikv-20160"
# TiKV 服务器日志文件存储目录
log_dir: "/tidb-deploy/tikv-20160/log"
# 以下配置用于覆盖 "server_configs.tikv" 值。
config:
server.labels:
zone: us
host: us-host
# # The ip address of the TiKV Server.
- host: 10.11.19.143
# ssh_port: 22
port: 20160
status_port: 20180
deploy_dir: "/tidb-deploy/tikv-20160"
data_dir: "/tidb-data/tikv-20160"
log_dir: "/tidb-deploy/tikv-20160/log"
config:
server.labels:
zone: cn
host: cn-host
- host: 10.11.19.144
# ssh_port: 22
port: 20160
status_port: 20180
deploy_dir: "/tidb-deploy/tikv-20160"
data_dir: "/tidb-data/tikv-20160"
log_dir: "/tidb-deploy/tikv-20160/log"
config:
server.labels:
zone: flb
host: flb-host
# 服务器配置用于指定Prometheus服务器的配置。
monitoring_servers:
# Prometheus 服务器IP
- host: 10.11.19.142
# 远程端口
# ssh_port: 22
# Prometheus 服务器通信端口.
port: 9090
# ng-监控服务通信端口
ng_port: 12020
# Prometheus 部署文件,启动脚本,配置文件存储目录。
deploy_dir: "/tidb-deploy/prometheus-8249"
# Prometheus 服务器存储目录.
data_dir: "/tidb-data/prometheus-8249"
# Prometheus 服务器日志存储目录.
log_dir: "/tidb-deploy/prometheus-8249/log"
# Grafana服务器的配置。
grafana_servers:
# Grafana 服务器IP
- host: 10.11.19.142
# 远程端口
# ssh_port: 22
# Grafana Web服务客户端(浏览器)访问端口
port: 3000
# Grafana部署文件,启动脚本,配置文件存储目录
deploy_dir: /tidb-deploy/grafana-3000
# Alertmanager服务器的配置
alertmanager_servers:
# Alertmanager 服务器IP
- host: 10.11.19.142
# 远程端口
# ssh_port: 22
# Alertmanager Web 服务客户端(浏览器)访问端口
web_port: 9093
# Alertmanager 通信端口
cluster_port: 9094
# Alertmanager 部署文件、启动脚本、配置文件存储目录
deploy_dir: "/tidb-deploy/alertmanager-9093"
# Alertmanager 服务器数据存放目录
data_dir: "/tidb-data/alertmanager-9093"
# Alertmanager 服务器日志存放目录
log_dir: "/tidb-deploy/alertmanager-9093/log"
TiUP 检查集群是否符合
tiup cluster check ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
TiUP 自动修复集群
tiup cluster check ./topology.yaml --apply --user root [-p] [-i /home/root/.ssh/gcp_rsa]
# [-i /home/root/.ssh/gcp_rsa] # 指定密钥的方式
TiUP 自动部署集群
tiup cluster deploy <cluster-name> <cluster-version> ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
TiUP 安全启动集群
# 安全启动方式: --init , 不能通过无密码的 root 用户登录数据库,你需要记录命令行返回的密码进行后续操作
tiup cluster start <cluster-name> --init
TiUP 查看集群列表
TiUP 检查集群状态
tiup cluster display <cluster-name>
TIUP 扩容节点
对 TiKV、TiFlash 及 Binlog 组件的操作
对其他组件的操作
下线 PD 组件时,会通过 API 将指定节点从集群中删除掉(这个过程很快),然后停掉指定 PD 的服务并且清除该节点的相关数据文件
下线其他组件时,直接停止并且清除节点的相关数据文件
参考: https://docs.pingcap.com/zh/tidb/dev/scale-tidb-using-tiup
编写扩容拓扑配置
可以使用 tiup cluster edit-config 查看当前集群的配置信息,因为其中的 global 和 server_configs 参数配置默认会被 scale-out.yml 继承,因此也会在 scale-out.yml 中生效。
# scale-out.yml
tidb_servers:
- host: 10.11.19.146
#ssh_port: 22
port: 4000
status_port: 10080
deploy_dir: /tidb-deploy/tidb-4000
log_dir: /tidb-deploy/tidb-4000/log
tikv_servers:
- host: 10.11.19.146
#ssh_port: 22
port: 20160
status_port: 20180
deploy_dir: /tidb-deploy/tikv-20160
data_dir: /tidb-data/tikv-20160
log_dir: /tidb-deploy/tikv-20160/log
pd_servers:
- host: 10.11.19.146
#ssh_port: 22
name: pd-4
client_port: 2379
peer_port: 2380
deploy_dir: /tidb-deploy/pd-2379
data_dir: /tidb-data/pd-2379
log_dir: /tidb-deploy/pd-2379/log
执行扩容命令
# 检查集群存在的潜在风险
tiup cluster check <cluster-name> scale-out.yml --cluster --user root [-p] [-i /home/root/.ssh/gcp_rsa]
# 自动修复集群存在的潜在风险
tiup cluster check <cluster-name> scale-out.yml --cluster --apply --user root [-p] [-i /home/root/.ssh/gcp_rsa]
# 执行 scale-out 命令扩容 TiDB 集群
tiup cluster scale-out <cluster-name> scale-out.yaml --user root -p
TIUP 缩容节点
正常缩容
# 查看 tidb-test 集群
[admin@es1 ~]$ tiup cluster display tidb-test
tiup is checking updates for component cluster ...
Starting component `cluster`: /home/admin/.tiup/components/cluster/v1.12.2/tiup-cluster display tidb-test
Cluster type: tidb
Cluster name: tidb-test
Cluster version: v7.1.0
Deploy user: tidb
SSH type: builtin
Dashboard URL: http://10.11.19.142:2379/dashboard
Grafana URL: http://10.11.19.142:3000
ID Role Host Ports OS/Arch Status Data Dir Deploy Dir
-- ---- ---- ----- ------- ------ -------- ----------
10.11.19.142:9093 alertmanager 10.11.19.142 9093/9094 linux/x86_64 Up /tidb-data/alertmanager-9093 /tidb-deploy/alertmanager-9093
10.11.19.142:3000 grafana 10.11.19.142 3000 linux/x86_64 Up - /tidb-deploy/grafana-3000
10.11.19.142:2379 pd 10.11.19.142 2379/2380 linux/x86_64 Up|UI /tidb-data/pd-2379 /tidb-deploy/pd-2379
10.11.19.143:2379 pd 10.11.19.143 2379/2380 linux/x86_64 Up /tidb-data/pd-2379 /tidb-deploy/pd-2379
10.11.19.144:2379 pd 10.11.19.144 2379/2380 linux/x86_64 Up|L /tidb-data/pd-2379 /tidb-deploy/pd-2379
10.11.19.146:2379 pd 10.11.19.146 2379/2380 linux/x86_64 Up /tidb-data/pd-2379 /tidb-deploy/pd-2379
10.11.19.142:9090 prometheus 10.11.19.142 9090/12020 linux/x86_64 Up /tidb-data/prometheus-8249 /tidb-deploy/prometheus-8249
10.11.19.142:4000 tidb 10.11.19.142 4000/10080 linux/x86_64 Up - /tidb-deploy/tidb-4000
10.11.19.143:4000 tidb 10.11.19.143 4000/10080 linux/x86_64 Up - /tidb-deploy/tidb-4000
10.11.19.144:4000 tidb 10.11.19.144 4000/10080 linux/x86_64 Up - /tidb-deploy/tidb-4000
10.11.19.146:4000 tidb 10.11.19.146 4000/10080 linux/x86_64 Up - /tidb-deploy/tidb-4000
10.11.19.142:20160 tikv 10.11.19.142 20160/20180 linux/x86_64 Up /tidb-data/tikv-20160 /tidb-deploy/tikv-20160
10.11.19.143:20160 tikv 10.11.19.143 20160/20180 linux/x86_64 Up /tidb-data/tikv-20160 /tidb-deploy/tikv-20160
10.11.19.144:20160 tikv 10.11.19.144 20160/20180 linux/x86_64 Up /tidb-data/tikv-20160 /tidb-deploy/tikv-20160
10.11.19.146:20160 tikv 10.11.19.146 20160/20180 linux/x86_64 Up /tidb-data/tikv-20160 /tidb-deploy/tikv-20160
# 执行缩容
tiup cluster scale-in tidb-test --node 10.11.19.146:20160 --node 10.11.19.146:4000 --node 10.11.19.146:2379
---
There are some nodes can be pruned:
Nodes: [10.11.19.146:20160]
You can destroy them with the command: `tiup cluster prune tidb-test`
---
# 如果过了很久都没有消失,可以手动执行: tiup cluster prune tidb-test 清除 Tombstone 的节点信息
TiUP 切换 PD Dashboard 到其他节点
正常切换
# 中控机执行
tiup cluster display tidb-test # 查看 CLUSTER_VERSION 版本,例如: Cluster version: v7.1.0
tiup ctl:v7.1.0 pd -u http://<原PD:2379> config set dashboard-address http://<新PD:2379>
故障切换
# 中控机执行, 禁用 TiDB Dashboard
tiup ctl:v7.1.0 pd -u http://10.11.19.142:2379 config set dashboard-address none
# 重新查看
tiup cluster display tidb-test --dashboard
# 自动选举 <重新启用 TiDB Dashboard>
tiup ctl:v7.1.0 pd -u http://<任意PD节点>:2379 config set dashboard-address auto
# 允许指定节点 <重新启用 TiDB Dashboard>
tiup ctl:v7.1.0 pd -u http://<任意PD节点>:2379 config set dashboard-address http://<指定PD>:2379
注意: 若新启用的 TiDB Dashboard 实例与禁用前的实例不一致,将会丢失之前 TiDB Dashboard 实例所存储的本地数据,包括流量可视化历史、历史搜索记录等。
TiDB Dashboard 安全问题
为 TiDB Dashboard 创建最小权限用户
# 例如: PD WEB UI 地址: http://192.168.0.123:2379/dashboard/
server {
listen 8033;
location /dashboard/ {
proxy_pass http://192.168.0.123:2379/dashboard/;
}
}
建议 root 强密码,防火墙配置
TiDB 备份与恢复实践示例
# 安装
tiup install br:v7.1.0
# 升级
tiup update br:v7.1.0
配置备份存储 (Amazon S3)
1、在 S3 创建用于保存备份数据的目录 s3://tidb-pitr-bucket/backup-data
创建 bucket: tidb-pitr-bucket
2、配置 br 命令行工具和 TiKV 访问 S3 中的备份目录的权限
备份集群的 TiKV 和 br 命令行工具需要的 s3://<桶名>/<文件夹> 权限
恢复集群的 TiKV 和 br 命令行工具需要 s3://<桶名>/<文件夹> 的最小权限
3、规划备份数据保存的目录结构,以及快照(全量)备份和日志备份的目录。
所有快照备份保存在 s3://tidb-pitr-bucket/backup-data/snapshot-${date} 目录下,${date} 为快照备份开始的时间点,如在 2022/05/12 00:01:30 开始的快照备份保存为 s3://tidb-pitr-bucket/backup-data/snapshot-20220512000130。
日志备份保存在 s3://tidb-pitr-bucket/backup-data/log-backup/ 目录下。
示例: TiUP 备份快照数据到 AWS S3
tiup br backup full -u "${PD_IP}:2379" \
--storage "s3://external/backup-20220915?access-key=${access-key}&secret-access-key=${secret-access-key}"
示例: TiUP 从 AWS S3 恢复快照备份数据
tiup br restore full -u "${PD_IP}:2379" \
--storage "s3://external/backup-20220915?access-key=${access-key}&secret-access-key=${secret-access-key}"
TIUP 实战备份
AWS参考格式: URL格式参考: https://docs.pingcap.com/zh/tidb/stable/backup-and-restore-storages
保存 30 天内的快照备份和日志备份数据,清理超过 30 天的备份数据。
1、执行日志备份(必须)
日志备份持续不断将数据库变更数据备份到 S3 中,(实测默认是间隔2分30秒左右)
# 启动日志备份任务后,日志备份进程会在 TiKV 集群运行,持续不断将数据库变更数据备份到 S3 中。
# task-name: 自定义名字
tiup br log start --task-name=${task-name} --pd="${PD_IP}:2379" \
--storage="s3://tidb-pitr-bucket/backup-data/log-backup?access-key=${access-key}&secret-access-key=${secret-access-key}"
# 查看所有任务
tiup br log status --pd="${PD_IP}:2379"
# 查看某一个任务
tiup br log status --task-name=${task-name} --pd="${PD_IP}:2379"
2、执行快照备份(必须)
# PD_IP: PD 服务IP地址
# TIME_NOW_STR1: S3备份文件夹名字
# TIME_NOW_STR2: 时间点
# ACCESS_KEY: S3 access_key
# SECRET_ACCESS_KEY: S3 密钥
PD_IP="10.11.19.142"
TIME_NOW_STR1=`date +%Y%m%d%H%M%S`
TIME_NOW_STR2=`date +%F\ %T`
ACCESS_KEY="AKIASFD2HMQ7LSDXZ6H2"
SECRET_ACCESS_KEY="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"
tiup br backup full --pd="${PD_IP}:2379" \
--storage="s3://tidb-pitr-bucket/backup-data/snapshot-${TIME_NOW_STR1}?access-key=${ACCESS_KEY}&secret-access-key=${SECRET_ACCESS_KEY}" \
--backupts="${TIME_NOW_STR2}"
# 可根据 echo $? 做执行快照备份成功判断
TIUP 恢复备份
# 假如只有一个 pitr 日志备份任务正在运行, 先暂停,再执行恢复
tiup br log status --pd="{PD_IP}:2379"
tiup br log stop --task-name=pitr --pd="{PD_IP}:2379"
恢复指定快照日期
# 快照日期
SNAPSHOT_TIME="202209150000"
tiup br restore full -u "${PD_IP}:2379" \
--storage "s3://tidb-pitr-bucket/backup-data/snapshot-${SNAPSHOT_TIME}?access-key=${access-key}&secret-access-key=${secret-access-key}"
执行 PITR(恢复到指定时间位置)
假设你接到需求,要准备一个(新)集群查询 2022/05/15 18:00:00 时间点的用户数据。
此时,你可以制定 PITR 方案,恢复 2022/05/14 的快照备份和该快照到 2022/05/15 18:00:00 之间的日志备份数据,从而收集到目标数据。
# 1、恢复 2022-05-14 00:00:00 快照备份
# 2、该快照到 2022-05-15 18:00:00 之间的日志备份数据,从而收集到目标数据
S3_DIR_TIME="20220514000000"
RESTORE_TIME="2022-05-15 18:00:00+0800"
tiup br restore point --pd="${PD_IP}:2379" \
--storage='s3://tidb-pitr-bucket/backup-data/log-backup' \
--full-backup-storage="s3://tidb-pitr-bucket/backup-data/snapshot-${S3_DIR_TIME}?access-key=${access-key}&secret-access-key=${secret-access-key}" \
--restored-ts ${RESTORE_TIME}
TiDB 日志备份与 PITR 命令行手册
官网更详细: https://docs.pingcap.com/zh/tidb/stable/br-pitr-manual#%E6%9F%A5%E8%AF%A2%E6%97%A5%E5%BF%97%E5%A4%87%E4%BB%BD%E4%BB%BB%E5%8A%A1
日常巡检
官网更详细: https://docs.pingcap.com/zh/tidb/stable/daily-check
MYSQL|TIDB 全量迁移
1、MYSQL|TIDB 把数据先全量备份导出,sql 结尾文件
安装组件
# 中控机
tiup install dumpling tidb-lightning
dumpling: 可以把存储在 TiDB 或 MySQL 中的数据导出为 SQL 或 CSV 格式,用于逻辑全量备份
F: 指定单个文件的最大大小,单位为 MiB,可接受类似 5GiB 或 8KB 的输入。
更多参考: https://docs.pingcap.com/zh/tidb/stable/dumpling-overview
Lightning: 是用于从静态文件导入 TB 级数据到 TiDB 集群的工具,常用于 TiDB 集群的初始化数据导入。
物理导入模式:快(100 ~ 500 GiB/小时)-->无法提供服务,常用于初始化导入
逻辑导入模式:慢(10 ~ 50 GiB/小时)-->可提供服务,常用于生产环境线上有数据
更多参考: https://docs.pingcap.com/zh/tidb/stable/tidb-lightning-overview
注意: 如果你想使用 TiDB Lightning 将该文件加载到 TiDB 实例中,建议将 -F 选项的值保持在 256 MiB 或以下 注意: 如果导出的单表大小超过 10 GB,强烈建议使用 -r 和 -F 参数。
导出数据
# 全量导出: 比如全量迁移 MYSQL 远程数据库的数据
tiup dumpling -h 10.11.19.247 -u root -p 123456 -P 3306 --filetype sql -t 8 -o /tmp/test -r 200000 -F256MiB
# 指定库导出: 比如远程服务器 MYSQL 数据库: fastapi , 用户名/密码: fastapi/fastapi
tiup dumpling -h 10.11.19.247 -u fastapi -p fastapi -P 3306 -B fastapi --filetype sql -t 8 -o /tmp/test -r 200000 -F256MiB
# 导出到 Amazon S3 云盘
export Bucket="s3_bucket"
export Folder="back-data"
export AWS_ACCESS_KEY_ID="xxxx"
export AWS_SECRET_ACCESS_KEY="xxxx"
tiup dumpling -h 10.11.19.247 -u root -p 123456 -P 3306 -r 200000 -o "s3://${Bucket}/${Folder}?access-key=${AWS_ACCESS_KEY_ID}&secret-access-key=${AWS_SECRET_ACCESS_KEY}"
导入数据
/tmp/test/ 刚刚导出的 sql 目录地址
[lightning]
# 日志
level = "info"
file = "tidb-lightning.log"
[tikv-importer]
# 选择使用的导入模式, local 物理导入模式, tidb 逻辑导入模式
backend = "tidb"
# 设置排序的键值对的临时存放地址,目标路径需要是一个空目录
sorted-kv-dir = "/tmp/ssd/sorted-kv-dir"
[mydumper]
# 源数据目录。
data-source-dir = "/tmp/test/"
# 配置通配符规则,默认规则会过滤 mysql、sys、INFORMATION_SCHEMA、PERFORMANCE_SCHEMA、METRICS_SCHEMA、INSPECTION_SCHEMA 系统数据库下的所有表
# 若不配置该项,导入系统表时会出现“找不到 schema”的异常
filter = ['*.*', '!mysql.*', '!sys.*', '!INFORMATION_SCHEMA.*', '!PERFORMANCE_SCHEMA.*', '!METRICS_SCHEMA.*', '!INSPECTION_SCHEMA.*']
[tidb]
# 目标集群的信息
host = "10.11.19.142"
port = 4000
user = "root"
password = "rootroot"
# 表架构信息在从 TiDB 的“状态端口”获取。
status-port = 10080
# 集群 pd 的地址
pd-addr = "10.11.19.142:2379"
#!/bin/bash
nohup tiup tidb-lightning -config tidb-lightning.toml > nohup.out &
# 导入完毕后,TiDB Lightning 会自动退出。若导入成功,日志的最后一行会显示 tidb lightning exit。
tiup dmctl --master-addr 10.11.19.141:8261 operate-source create source1.yaml
MYSQL|TIDB 不停机迁移
部署参考: https://docs.pingcap.com/zh/tidb-data-migration/v5.3/deploy-a-dm-cluster-using-tiup 具体迁移参考: https://docs.pingcap.com/zh/tidb-data-migration/v5.3/migrate-data-using-dm
DM 集群安装组件
tiup install dm dmctl
编辑初始化配置文件
tiup dm template > dm.yaml
[admin@es1 ~]$ cat dm.yaml
# 这里没有使用高可用集群方式
---
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/home/tidb/dm/deploy"
data_dir: "/home/tidb/dm/data"
# arch: "amd64"
master_servers:
- host: 10.11.19.141
执行部署命令
# tiup list dm-master 来查看 TiUP 支持的最新版本。
tiup dm deploy dm-test ${version} ./dm.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
# 预期日志结尾输出会有 Deployed cluster `dm-test` successfully 关键词,表示部署成功。
检查
tiup dm list # 查看 TiUP 管理的集群情况
tiup dm display dm-test # 检查部署的 DM 集群情况
tiup dm start dm-test # 启动集群
tiup dm display dm-test # 验证集群运行状态
Last updated