登录
首页 >  数据库 >  MySQL

【巨杉数据库Sequoiadb】sdb backupOffline 相关问题

来源:SegmentFault

时间:2023-01-23 13:11:55 270浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习数据库相关编程知识。下面本篇文章就来带大家聊聊《【巨杉数据库Sequoiadb】sdb backupOffline 相关问题》,介绍一下MySQL,希望对大家的知识积累有所帮助,助力实战开发!

【问题1】
目前sdb 的backupOffline 方法,支持增量备份时,不阻塞数据库的读写请求。
如果有如下场景
1 昨天的备份lsn 为 1000
2 今天执行增量备份时,lsn 为 1200
3 执行增量备份过程中,lsn 变为 1300
则本次增量备份,是备份了 lsn 从 1000 - 1200,还是 1000 - 1300?

【问题2】
目前backupOffline 方法,支持执行group 进行备份,也是支持全集群进行备份。
我自己理解,全集群备份和指定group 备份,都是由数据库找到每个group 的

master 节点进行相关的备份。
换言之,backupOffline 方法依赖 master 节点。
由于增量备份,需要依赖上一个备份点的lsn 号,所以如果用户在执行 本次增量备份时,某个group 的master 节点发生变化,数据库会如何表现?
如果在全集群做增量备份,假设有三个group, 只有其中一个group 的master 发生了切换,对于其余两个group 来说,是否会生成新的增量备份文件?还是会自动回滚?

【解决办法】
问题1:
执行增量备份过程中,如果数据库仍在进行操作,是有可能将一部分的操作备份成功的,也就是备份的lsn是备份1000~1300之间。
问题2:
1、执行增量备份过程中,节点切主并不会影响本次备份过程,备份的结果是原主节点产生增量备份。
2、在全集群做了全量备份的情况下,如group1/2/3均做了全量备份,即在每个group的主节点都做了全量备份,然后有一个group的主节点变动了,如group1的主节点从A机器切换到了B机器,此时进行全局的增量备份,其余两个group依旧是会备份成功的,只有切主的group1的主节点增量备份失败,因为其新主节点在进行增量备份时发现没有全量备份,会抛出-264错误,可以通过getLastErrObj()查看更详细的错误。

【问题补充】
解决方法2中提到:
有切主的group1的主节点增量备份失败,因为其新主节点在进行增量备份时发现没有全量备份
我想问一下是如何判断该节点是否有全量备份,是通过检查备份目录是否存在全量备份的文件吗?

【解决办法】
查看节点是否有全量备份可以通过db.listBackup()查看备份信息,如改节点的备份信息中有"EnsureInc": false,则该备份是全量备份文件。 ​

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于数据库的相关知识,也可关注golang学习网公众号。

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表