PiTR一致性的疑问

在进行 PITR 需要的备份的时候,A、B、C 节点都会定期记录下属于自己节点的 local checkpoint ts,代表着该节点上 txn commit ts 早于 checkpoint ts 的数据都已经被备份下来了。然后计算所有节点的最小 checkpoint ts 就是备份 global checkpoint

进行指定时间点恢复的时候,PITR 只能恢复 global checkpoint 之前的时间点,这就保证了不会有数据丢失。

这是 PITR 的保证, 与数据写入时间无关。比如按照上面给的例子,如果 DT1 的 comit ts < 2s000ms ,用户指定恢复到 2s000ms 恢复,但是 C 的 DT1 数据还没备份下来时,PITR 是会报错不能恢复的

设计概要可以看这个 https://github.com/pingcap/docs-cn/blob/57c080287da40c3b4f44ff8684c045fc818a140e/br/br-log-architecture.md

2 个赞