【TiDB 使用环境】生产环境
【TiDB 版本】8.5.3
【操作系统】
【部署方式】云上部署(什么云)/机器部署(什么机器配置、什么硬盘)
【集群数据量】
【集群节点数】
【问题复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
JuiceFS使用TiKV作为元数据引擎时,使用的txnKV,而不是rawKV。目前不管是tikv-cdc还是TiDB官方提供的CDC方式,都明确不支持txnKV。不知道生产环境下,有没有合适的增量备份方案,来实现对txnKV的备份。
通过tiup br txn方式,可以实现全量的备份,但对txn的备份还是实验特性,并且每次全量的备份,开销还是有点大
同样是使用TxnKV,想寻找增量备份方案
比较建议直接使用 tidb 集群,有完善的自动备份方案,txnkv 社区用法比较少,遇到问题可能比较难定位,大家也没办法帮助到你
元数据使用场景,使用TiKV的KV存储更直接点,而且是JFS官方支持的元数据引擎,在生产上也有大规模的数据案例。另一方面,TiKV已经作为一个分布式存KV存储,可以独立TiDB使用,就是社区对于txnKV增量备份这块目前没有好的工具支持
目前没有
一些开源的试过吗?比如:FlinkCDC或者Canal之类的,可以调研一番~
JuiceFS 针对自身元数据设计了专属备份工具,直接适配 txnKV 存储结构,无需依赖 TiDB 生态工具
若需同时备份 TiDB 业务数据和 txnKV 元数据,可基于 tiup br txn 优化,通过 “全量 + 增量” 组合降低开销
还可以基于 TiKV 数据目录的存储层快照实现增量备份,适合对备份颗粒度要求不高的场景
多副本备份
JuiceFS挂载点自动备份的方式是全量的,有两个问题:生产环境数据量大的时候,全量备份带来的线上服务压力;第二个问题,不可能实时备份,所以会有丢失两次备份窗口期内数据的风险。官方的 tiup br txn支持通过访问只读节点方式备份,可以试用下。 不管是哪种,都没法做到准实时的数据备份,都有丢数据可能,所以都不是很完美
需要根据情况自己来安排了
txnKV是啥?
可尝试基于 TiKV 快照 + 日志重放做增量备份,txnKV 增量工具感觉实验性 样的。
多副本备份哦
典型的杂交方案,给自己惹麻烦啊.最好还是推荐使用tidb的完整方案,社区协助广泛
可能只能做存储层的备份了
为什么 TxnKV 很难做 CDC
核心原因是 TiKV CDC 的设计目标:
1)TiKV-CDC 主要针对 RawKV / TiDB KV
官方 CDC 机制是基于:
MVCC
Raft log
resolved-ts
region event
但 TxnKV 的编码是 TiKV 内部事务层编码,不是 TiDB 表结构 KV,也不是 RawKV。
因此 CDC 没有:
key 解析能力
schema 语义
增量事件输出能力
所以:
TiKV CDC 目前不支持 TxnKV 增量复制
这是架构限制。
BR 全量 + 周期快照(推荐)
这是目前最现实方案。
架构:
TiKV (TxnKV)
|
BR txn backup
|
S3/NFS
|
多时间点快照
策略:
每天全量
例如:
每天凌晨
br txn backup
保存 7 天
每小时快照(轻量)
利用:
tikv snapshot backup
或:
增量存储层快照(如:
Ceph
ZFS
LVM
云盘 snapshot)
没有理解快照备份和全量备份有什么区别