【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
因为tikv_gc_life_time默认等于10min,如果我在9:00做了一次全量备份,然后打算在9:20做一次增量备份,指定的上一次备份时间点即为9:00的全量备份的时间戳,那么增量备份会因为gc safepoint超过了全量备份的时间戳而失败。如果关掉gc又会产生过多的垃圾数据。可不可以在不修改tikv_gc_life_time的情况下,使用br工具实现任意时间点的增量备份呢?
【资源配置】
【附件:截图/日志/监控】
日志备份,快照备份之后记录所有的变更日志,恢复时可指定时间点恢复。
https://docs.pingcap.com/zh/tidb/stable/br-pitr-guide#tidb-日志备份与-pitr-使用指南
谢谢,是个方法,不过主要想问的是这个gc的问题是只能通过修改tikv_gc_life_time才能规避么。
谢谢,主要是想知道这个gc的问题是只能通过修改tikv_gc_life_time才能规避么。
好吧 感谢。那么因为这个gc问题,我想在任意时间点触发日志备份也无法实现咯。
日志备份一般就一直开启了吧,定期清理过期的就行
dumpling、cdc也都会被这个gc问题阻塞。
关于增量备份和gc机制,还有一点想请教一下,既然增量备份是只备份上一次备份完成到当前时间点的变化数据,无论这期间进行了多少次gc,都应该算作”变化数据“。为啥依赖的上一次备份时间戳超过了gc safepoint,就无法进行增量备份了呢,这二者有什么必然的联系么。
数据的历史版本都被gc掉了,那肯定没法增量备份了,比如想备份1年前的全备到现在的增量,那肯定是没地方找了,不过用日志备份就没这个问题,和gc无关。
tidb的备份是逻辑备份/恢复,GC后safepoint前的数据就没了,这段数据没了就没法‘前滚’。不像oracle那样是按数据块的物理级备份
啥意思?9:00全备了,9:20增量备份会因为gc设置只有10分钟失败?
sorry,可能是我没描述清楚,增量失败直接原因不是tikv_gc_life_time=10min,而是由于tikv_gc_life_time=10min,导致safe point每十分钟更新一次,那么在9:20做增备时,safe time一定超过了全备的时间戳(这是增备失败的直接原因)。
br不更新了?
只是增量备份,替换成日志备份了