迁移实践之TiDB

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使用教程

https://docs.pingcap.com/zh/tidb/stable/manage-ticdc#%E4%BD%BF%E7%94%A8-cdc-cli-%E5%B7%A5%E5%85%B7%E6%9D%A5%E7%AE%A1%E7%90%86%E9%9B%86%E7%BE%A4%E7%8A%B6%E6%80%81%E5%92%8C%E6%95%B0%E6%8D%AE%E5%90%8C%E6%AD%A5

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集群会自动滚动更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值