TiDB 备份与恢复概述

    TiDB 备份恢复功能可以用于满足以下业务的需求:

    • 备份集群数据到灾备系统,并保证 Recovery Point Objective (RPO) 低至 5 分钟,减少灾难场景下数据的丢失。
    • 处理业务数据写错的案例,提供业务操作的“复原”能力。
    • 复制 (Clone) 生产环境,方便问题诊断、性能调优验证、仿真测试等。

    本部分介绍使用 TiDB 备份恢复功能前的注意事项,包括使用限制和使用建议。

    • PITR 仅支持恢复到全新的空集群
    • PITR 仅支持集群粒度的恢复,不支持对单个 database 或 table 的恢复。
    • PITR 不支持恢复系统表中用户表和权限表的数据。
    • 不支持在一个集群上同时运行多个数据备份任务。
    • PITR 数据恢复任务运行期间,不支持同时运行日志备份任务,也不支持通过 TiCDC 同步数据到下游集群。

    使用建议

    进行快照备份

    • 推荐在业务低峰时执行集群快照数据备份,这样能最大程度地减少对业务的影响。
    • 不推荐同时运行多个集群快照数据备份任务。不同的任务并行,不仅会导致备份的性能降低,影响在线业务,还会因为任务之间缺少协调机制造成任务失败,甚至对集群的状态产生影响。

    进行快照恢复

    • BR 恢复数据时会尽可能多地占用恢复集群的资源,因此推荐恢复数据到新集群或离线集群。应避免恢复数据到正在提供服务的生产集群,否则,恢复期间会对业务产生不可避免的影响。

    备份存储和网络配置

    • 推荐使用支持 Amazon S3、GCS 或 Azure Blob Storage 协议的存储系统保存备份数据;
    • 应确保 BR、TiKV 节点和备份存储系统有足够的网络带宽,备份存储系统能提供足够的写入和读取性能,否则,它们有可能成为备份恢复时的性能瓶颈。

    功能使用

    其它 TiDB 的部署方式的备份恢复功能使用,可以参考:

    使用备份恢复功能,你可以进行以下两类操作:

    • 对集群进行备份:你可以对集群某个时间点的全量数据进行备份(全量备份),也可以对业务写入在 TiDB 产生的数据变更记录进行备份(日志备份,日志指的是 TiKV 中的 kv 变更数据的记录)。

    • 恢复备份数据:

      • 你可以恢复某个全量备份,或者全量备份中的部分库/表,将目标集群恢复到该全量备份对应的数据状态。

    全量备份是对集群某个时间点的全量数据进行备份。TiDB 支持以下方式的全量备份:

    • 快照数据备份:TiDB 集群快照数据包含某个物理时间点上集群满足事务一致性的所有数据。BR 支持备份集群快照数据,使用请参考。
    • 开启日志备份任务后,任务会在所有 TiKV 节点上持续运行,以小批量的形式定期将 TiDB 变更数据备份到指定存储中。
    • 定期执行,备份集群全量数据到备份存储,例如在每天零点进行集群快照备份。

    备份的性能,以及对集群的影响

    • 集群快照数据备份,对 TiDB 集群的影响可以保持在 20% 以下;通过合理的配置 TiDB 集群用于备份资源,影响可以降低到 10% 及更低;单 TiKV 存储节点的备份速度可以达到 50 MB/s ~ 100 MB/s,备份速度具有可扩展性;更详细说明请参考。
    • 单独运行日志备份时影响约在 5%。日志备份每隔 3~5 分钟将上次刷新后产生的变更数据记录刷新到备份存储中,可以实现低至五分钟 RPO 的集群容灾目标

    恢复备份数据

    与备份功能相对应,你可以进行两种类型的恢复:全量恢复和 PITR。

    • 恢复某个全量备份

      • 恢复集群快照数据备份:你可以在一个空集群或不存在数据冲突(相同 schema 或 table)的集群执行快照备份恢复,将该集群恢复到快照备份对应数据状态。使用请参考。此外你可以只恢复备份数据中指定库/表的局部数据。该功能在恢复过程中过滤掉不需要的数据。使用请参考恢复备份数据中指定库表的数据
    • 恢复到集群的历史任意时间点 (PITR)

      • 通过 功能。你可以指定要恢复的时间点,恢复时间点之前最近的快照数据备份,以及日志备份数据。BR 会自动判断和读取恢复需要的数据,然后将这些数据依次恢复到指定的集群。

    恢复的性能

    • 恢复集群快照数据备份,速度可以达到单 TiKV 存储节点 100 MiB/s,恢复速度具有可扩展性;BR 只支持恢复数据到新集群,会尽可能多的使用恢复集群的资源。更详细说明请参考恢复性能和影响
    • 恢复日志备份数据,速度可以达到 30 GiB/h。更详细说明请参考 。

    备份存储

    TiDB 支持将数据备份到 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage、NFS,或者实现 S3 协议的其他文件存储服务。更多备份存储的详细信息,请参考如下内容:

    在使用备份恢复功能之前,需要先了解 BR 工具与其他功能的兼容性以及使用限制。

    版本间兼容性

    BR 内置版本会在执行备份和恢复操作前,对 TiDB 集群版本和自身版本进行对比检查。如果版本之间不兼容,BR 会提示报错并退出。如要跳过版本检查,可以通过设置 强行跳过版本检查。需要注意的是,跳过检查可能会遇到版本不兼容的问题。

    恢复版本(横向)\ 备份版本(纵向)恢复到 TiDB v6.0恢复到 TiDB v6.1恢复到 TiDB v6.2恢复到 TiDB v6.3恢复到 TiDB v6.4恢复到 TiDB v6.5
    TiDB v6.0 快照兼容兼容兼容兼容兼容兼容
    TiDB v6.1 快照备份兼容(已知问题,如果备份数据中包含空库可能导致报错,参考 #36379兼容兼容兼容兼容兼容
    TiDB v6.2 快照备份兼容(已知问题,如果备份数据中包含空库可能导致报错,参考 )兼容兼容兼容兼容兼容
    TiDB v6.3 快照备份兼容(已知问题,如果备份数据中包含空库可能导致报错,参考 #36379兼容兼容兼容兼容兼容
    TiDB v6.3 PITR 日志备份\\不兼容兼容兼容兼容
    TiDB v6.4 PITR 日志备份\\不兼容兼容兼容兼容
    TiDB v6.5 PITR 日志备份\\不兼容兼容兼容兼容

    探索更多