备份与恢复 CR 介绍

本文详细介绍了TiDB在Kubernetes环境下进行数据备份与恢复的相关配置,包括Backup、Restore及BackupSchedule Custom Resource的各种字段解释,帮助用户更好地管理和操作TiDB集群的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文档介绍用于备份与恢复的 BackupRestore 及 BackupSchedule Custom Resource (CR) 资源的各字段,确保更好地对 Kubernetes 上的 TiDB 集群进行数据备份和数据恢复。

Backup CR 字段介绍

为了对 Kubernetes 上的 TiDB 集群进行数据备份,用户可以通过创建一个自定义的 Backup CR 对象来描述一次备份,具体备份过程可参考数据备份中列出的文档。以下介绍 Backup CR 各个字段的具体含义。

通用字段介绍

  • .spec.metadata.namespaceBackup CR 所在的 namespace。

  • .spec.toolImage:用于指定 Backup 使用的工具镜像。TiDB Operator 从 v1.1.9 起支持这项配置。

    • 使用 BR 备份时,可以用该字段指定 BR 的版本:
      • 如果未指定或者为空,默认使用镜像 pingcap/br:${tikv_version} 进行备份。
      • 如果指定了 BR 的版本,例如 .spec.toolImage: pingcap/br:v5.3.0,那么使用指定的版本镜像进行备份。
      • 如果指定了镜像但未指定版本,例如 .spec.toolImage: private/registry/br,那么使用镜像 private/registry/br:${tikv_version} 进行备份。
    • 使用 Dumpling 备份时,可以用该字段指定 Dumpling 的版本:
      • 如果指定了 Dumpling 的版本,例如 spec.toolImage: pingcap/dumpling:v5.3.0,那么使用指定的版本镜像进行备份。
      • 如果未指定,默认使用 Backup Manager Dockerfile 文件中 TOOLKIT_VERSION 指定的 Dumpling 版本进行备份。
  • .spec.backupType:指定 Backup 类型,该字段仅在使用 BR 备份时有效,目前支持以下三种类型,可以结合 .spec.tableFilter 配置表库过滤规则:

    • full:对 TiDB 集群所有的 database 数据执行备份。
    • db:对 TiDB 集群一个 database 的数据执行备份。
    • table:对 TiDB 集群中指定表的数据执行备份。
  • .spec.tikvGCLifeTime:备份中的临时 tikv_gc_life_time 时间设置,默认为 72h

    在备份开始之前,若 TiDB 集群的 tikv_gc_life_time 小于用户设置的 spec.tikvGCLifeTime,为了保证备份的数据不被 TiKV GC 掉,TiDB Operator 会在备份前调节 tikv_gc_life_time 为 spec.tikvGCLifeTime

    备份结束后,不论成功或者失败,如果旧的 tikv_gc_life_time 小于设置的 .spec.tikvGCLifeTime,TiDB Operator 会尝试恢复 tikv_gc_life_time 为备份前的旧值。在极端情况下,如果 TiDB Operator 访问数据库失败,TiDB Operator 将无法自动恢复 tikv_gc_life_time 并认为备份失败。

    此时,可以通过下述语句查看当前 TiDB 集群的 tikv_gc_life_time

     

    select VARIABLE_NAME, VARIABLE_VALUE from mysql.tidb where VARIABLE_NAME like "tikv_gc_life_time";

    如果发现 tikv_gc_life_time 值过大(通常为 10m),则需要按照调节 tikv_gc_life_time 将 tikv_gc_life_time 调回原样。

  • .spec.cleanPolicy:备份集群后删除 Backup CR 时的备份文件清理策略。目前支持三种清理策略:

    • Retain:任何情况下,删除 Backup CR 时会保留备份出的文件。

    • Delete:任何情况下,删除 Backup CR 时会删除备份出的文件。

    • OnFailure:如果备份中失败,删除 Backup CR 时会删除备份出的文件。

      如果不配置该字段,或者配置该字段的值为上述三种以外的值,均会保留备份出的文件。值得注意的是,在 v1.1.2 以及之前版本不存在该字段,且默认在删除 CR 的同时删除备份的文件。若 v1.1.3 及之后版本的用户希望保持该行为,需要设置该字段为 Delete

  • .spec.cleanOption:备份集群后删除 Backup CR 时的备份文件清理行为。更多说明请参阅清理备份文件

  • .spec.from.host:待备份 TiDB 集群的访问地址,为需要导出的 TiDB 的 service name,例如 basic-tidb

  • .spec.from.port:待备份 TiDB 集群的访问端口。

  • .spec.from.user:待备份 TiDB 集群的访问用户。

  • .spec.from.secretName:存储 .spec.from.user 用户的密码的 Secret。

  • .spec.from.tlsClientSecretName:指定备份使用的存储证书的 Secret。

    如果 TiDB 集群开启了 TLS,但是不想使用文档中创建的 ${cluster_name}-cluster-client-secret 进行备份,可以通过这个参数为备份指定一个 Secret,可以通过如下命令生成:

     

    kubectl create secret generic ${secret_name} --namespace=${namespace} --from

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天读点书学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值