dble下如何做备份 #3151
Answered
by
KlawzZ
PanternBao
asked this question in
Q&A
dble下如何做备份
#3151
-
dble 下如何做备份? |
Beta Was this translation helpful? Give feedback.
Answered by
KlawzZ
Apr 1, 2022
Replies: 1 comment
-
1.备份管理端发起一个全量备份的请求,即在各个数据节点中做一个全量备份,并且得到一个数据备份的位置,这个位置记作A。 |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
LUAgam
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
1.备份管理端发起一个全量备份的请求,即在各个数据节点中做一个全量备份,并且得到一个数据备份的位置,这个位置记作A。
2.通过dble集群管理端的命令去获取每个分片当前gtid事务的状态,这个操作会hang住dble的写事务。对于正在执行的事务会等待它完成,而新的事务将会被阻塞在dble层面。为了防止业务长时间挂在这里,阻塞时间过长,在等待事务执行完成这里存在一个超时机制,如果超时,本次拉取gtid的操作就会失败。正常情况下,在阻塞新事务以及等待事务执行完成后,所有的分片处于一个只读状态,那么此时去拉gtid是能保证一致性的。
3.上一步返回的gtid记为B。
4.上面步骤完成后,写请求已经可以继续了。然后备份管理端会下发一个新的请求,按照每个分片做binlog的备份。由于此时可能已经写入了新的数据,所以binlog的备份一定是大于等于B的。另外需要注意的是,binlog的备份起点一定要包含A,即备份起点小于等于A,这样binlog的备份范围就是A到B的一个超集。
以上,一次完整的备份就完成了。