【
问题
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
,
则该备
份是全量
备
份文件。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69935160/viewspace-2652305/ ,如需转载,请注明出处,否则将追究法律责任。