TiDB版本
v5.0.1
TiDB运行环境
Kubernetes >=v1.16
迁移工具
全量工具:BR v5.0.1
增量工具:TiCDC v5.0.1
迁移步骤
一、部署TiDB
a.部署TiDB Operator
创建CRD
wget https://raw.githubusercontent.com/pingcap/tidb-operator/v1.3.10/manifests/crd.yaml
kubectl create -f ./crd.yaml
部署v1.3版本
helm install tidb-operator pingcap/tidb-operator --namespace=tidb-admin --version=v1.3 -f /home/tidb-operator/values-tidb-operator.yaml && \
kubectl get po -n tidb-admin -l app.kubernetes.io/name=tidb-operator
b.部署TiDB-cluster,配置文件如下,执行kubectl apply -f xxx.yaml即可
apiVersion: pingcap.com/v1alpha1
kind: TidbCluster
metadata:
name: tidb
namespace: tidb
spec:
version: "v5.0.1"
timezone: Asia/Shanghai
configUpdateStrategy: RollingUpdate
pvReclaimPolicy: Retain
enableDynamicConfiguration: true
discovery: {}
hostNetwork: false
storageClassName: ssd
tiflash:
additionalVolumeMounts:
- mountPath: /data/backup
name: nfs
additionalVolumes:
- name: nfs
nfs:
path: /
server: xx.xx.xx.xx
baseImage: pingcap/tiflash
maxFailoverCount: 2
replicas: 2
storageClaims:
- resources:
requests:
cpu: 500m
memory: 2Gi
storage: 300Gi
limits:
cpu: "6"
memory: 25Gi
storageClassName: ssd
pd:
baseImage: pingcap/pd
config: |
[dashboard]
internal-proxy = true
[replication]
enable-placement-rules = true
replicas: 3
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: "4"
memory: 6Gi
maxFailoverCount: 3
requests:
storage: 100Gi
tidb:
baseImage: pingcap/tidb
config: |
[performance]
tcp-keep-alive = true
replicas: 3
requests:
cpu: "1"
memory: 2Gi
limits:
cpu: "6"
memory: 6Gi
maxFailoverCount: 3
service:
type: ClusterIP
tikv:
additionalVolumeMounts:
- mountPath: /data/backup
name: nfs
additionalVolumes:
- name: nfs
nfs:
path: /
server: xx.xx.xx.xx
baseImage: pingcap/tikv
config: |
log-level = "info"
prevote = true
replicas: 3
maxFailoverCount: 3
requests:
cpu: 500m
memory: 5Gi
storage: 500Gi
limits:
cpu: "6"
memory: 15Gi
mountClusterClientSecret: true
二、数据备份同步
a.全量数据备份/恢复
首先利用BR工具进行全量备份,备份方式选择备份在NFS磁盘上,此处注意一定要是共享盘,即多个节点挂载一个NFS磁盘,备份完成后,将备份目录拷贝至新建TiDB集群下的NFS盘下,然后在新的TiDB集群下执行恢复动作。
BR工具的使用可以参考官方文档:https://docs.pingcap.com/zh/tidb/stable/use-br-command-line-tool
知识点1:如果集群中有TiFlash组件,除了TiKV需要挂载NFS磁盘外,TiFlash也需要挂载NFS磁盘,不然恢复输数据会出现错误,备份则不需要挂载
知识点2:BR备份命令建议加--checksum=false参数,即不校验SQL,可以加速备份。
b.增量同步数据
TiCDC使用教程
TiCDC配置教程
https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/deploy-ticdc
注:./br validate decode --field="end-version" -s local:///data/backup/tidb | tail -n1 查看TSO时间戳命令
BR备份命令建议加--checksum=false参数,即不校验SQL,可以加速备份。
4、恢复数据
将数据拷贝到新集群挂在的nfs下,执行BR恢复命令恢复数据,命令参考上步教程
注:如果集群有Tifash,数据恢复则TIfash一定要挂载Tikv的nfs,备份则不用
5、升级TiDB
kubectl edit tc Tidb集群名称 -n 命名空间,修改spec.version参数,保存即可,Tidb集群会自动滚动更新