如果gc过期了,那么要怎么恢复误修改的数据?

在生产环境中,如果在A时间update表t1数据,tidb在B时间执行GC,在C时间才发现表t1数据被误修改了;那么要怎么恢复update之前的数据?

时间关系:A< B < C

能想到的是只能通过br进行基于时间点的恢复

没有备份就恢复不了的

被清理了之后就无法还原A的数据了,属于是物理删除。如果系统是单集群的就没办法,如果带有从集群,可以考虑将从集群的GC调整到1个小时或者是24个小时,在误删之后快速恢复

没有备份的话就无法恢复,GC结束就代表已经物理删除了

GC结束就开始走物理删除流程了,但是也不一定删除,不过也没太好办法这个时间点恢复

看 gc_safe_point 的位置,前的就找不到了,后的就可以

嗯,这属于前期架构上的设计,可以避免这种误修改问题 :call_me_hand:

我在想,raft log能不能解析出来 :thinking:

对,是的

是的,备份很重要,有备份很多误操作问题都可以解决

没有其他措施的情况,数据找不回来了。

可以试下,回放一下。

正式环境的话 gc时间要根据业务特点来调整大小 避免这种情况的发生, 另外备份还是很有必要搞的 br pitr ticdc~ 主打一个安全

只能通过之前的备份来进行恢复了