本公开涉及数据备份,具体涉及一种数据库在线备份方法、装置、设备及介质。
背景技术:
1、随着数字化程度不断提升,工作和生活中涉及的数据量越来越大,人们通过数据库来存储和管理这些数据,让数据的消费更加便利。然而数据库存储也存在诸多安全隐患问题,如自然灾害、黑客攻击、技术故障等导致数据库崩溃,因此为了保障数据安全,需要对数据库备份以便数据库崩溃时恢复数据。
2、mongodb是一个基于分布式文件存储的数据库,在对mongodb数据库进行物理备份时,需要保证物理备份的一致性,即备份所包含的各个数据均来自同一系统时间点,这样在使用一致性备份文件对数据库进行复原(restore)后,不需要执行恢复操作(recovery)。现有方案为了保证物理备份的一致性,通常会关停数据库来进行备份,数据库关停时不能为用户提供服务,而数据库存储的数据量太大,停机备份会导致数据库的关停时间过长,对业务造成极大影响。
技术实现思路
1、为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据库在线备份方法、装置、设备及介质。
2、第一方面,本公开提供了一种数据库在线备份方法,包括:
3、连接mongodb副本集群中的目标节点,所述目标节点用于同步所述mongodb副本集群的主节点的数据;
4、向所述目标节点发送状态调节指令,以使所述目标节点调节至目标状态,所述目标节点在所述目标状态下暂停与所述主节点数据同步;
5、向所述目标节点发送备份指令,以使所述目标节点将所述目标节点中的数据备份到目标存储设备上;
6、在接收到所述目标节点完成备份的反馈消息后,向所述目标节点发送解锁指令,以使所述目标节点解除目标状态。
7、可选的,所述向所述目标节点发送备份指令,以使所述目标节点将所述目标节点中的数据备份到目标存储设备上,包括:
8、向所述目标节点发送针对元数据和基础数据的备份指令,以使目标节点将所述目标节点上的元数据和基础数据备份到目标存储设备上。
9、可选的,所述向所述目标节点发送针对元数据备和基础数据的备份指令,包括:
10、向所述目标节点发送元数据备份指令,以使目标节点将所述元数据备份到目标存储设备上;
11、响应于接收到所述元数据备份结束的第一反馈消息,向所述目标节点发送基础数据备份指令,以使所述目标节点将所述元数据备份到目标存储设备上;
12、所述在接收到所述目标节点完成备份的反馈消息后,向所述目标节点发送解锁指令,以使所述目标节点解除目标状态,包括:
13、在接收到所述元数据备份完成的第一反馈消息之后,向所述目标节点发送解锁指令。
14、可选的,所述目标节点在所述目标状态下生成备份游标,在所述备份游标存在时,所述目标节点禁止对基础数据进行删减和更改;
15、所述方法还包括:
16、在接收到所述基础数据备份结束的第一反馈消息之后,向目标节点发送释放指令,以使目标节点释放所述备份游标。
17、可选的,所述向所述目标节点发送针对元数据和基础数据的备份指令之前,还包括:
18、向所述目标节点发送获取指令,以使所述目标节点返回其服务配置中的数据存放地址;
19、所述向所述目标节点发送针对元数据和基础数据的备份指令,包括:
20、基于所述数据存放地址,向所述目标节点发送针对元数据和基础数据的备份指令。
21、可选的,所述基于所述数据存放地址,向所述目标节点发送针对元数据的备份指令,包括:
22、向所述目标节点发送元数据打包指令,以使所述目标节点对所述数据存放地址中的元数据打包,生成元数据备份文件;
23、将所述元数据备份文件存储到目标存储设备上。
24、可选的,所述基于所述数据存放地址,向所述目标节点发送针对基础数据的备份指令,包括:
25、向所述目标节点发送基础数据打包指令,以使所述目标节点对所述数据存放地址中的基础数据打包并压缩,生成基础数据备份文件;
26、将所述基础数据备份文件存储到目标存储设备上。
27、第二方面,本公开提供了一种数据库在线备份装置,包括:
28、连接模块,用于连接mongodb副本集群中的目标节点,所述目标节点用于同步所述mongodb副本集群的主节点的数据;
29、锁定模块,用于向所述目标节点发送状态调节指令,以使所述目标节点调节至目标状态,所述目标节点在所述目标状态下暂停与所述主节点数据同步;
30、备份模块,用于向所述目标节点发送备份指令,以使所述目标节点将所述目标节点中的数据备份到目标存储设备上;
31、解锁模块,用于在接收到所述目标节点完成备份的反馈消息后,向所述目标节点发送解锁指令,以使所述目标节点解除目标状态。
32、可选的,所述备份模块在向所述目标节点发送备份指令,以使所述目标节点将所述目标节点中的数据备份到目标存储设备上时,具体用于向所述目标节点发送针对元数据和基础数据的备份指令,以使目标节点将所述目标节点上的元数据和基础数据备份到目标存储设备上。
33、可选的,所述备份模块在向所述目标节点发送针对元数据备和基础数据的备份指令时,具体用于向所述目标节点发送元数据备份指令,以使目标节点将所述元数据备份到目标存储设备上;响应于接收到所述元数据备份结束的第一反馈消息,向所述目标节点发送基础数据备份指令,以使所述目标节点将所述元数据备份到目标存储设备上;
34、所述解锁模块在接收到所述目标节点完成备份的反馈消息后,向所述目标节点发送解锁指令,以使所述目标节点解除目标状态时,具体用于在接收到所述元数据备份完成的第一反馈消息之后,向所述目标节点发送解锁指令。
35、可选的,所述目标节点在所述目标状态下生成备份游标,在所述备份游标存在时,所述目标节点禁止对基础数据进行删减和更改;
36、所述解锁模块还用于在接收到所述基础数据备份结束的第二反馈消息之后,向目标节点发送释放指令,以使目标节点释放所述备份游标。
37、可选的,所述装置还包括获取模块,用于在向所述目标节点发送针对元数据和基础数据的备份指令之前,向所述目标节点发送获取指令,以使所述目标节点返回其服务配置中的数据存放地址;
38、所述备份模块在向所述目标节点发送针对元数据和基础数据的备份指令时,具体用于基于所述数据存放地址,向所述目标节点发送针对元数据和基础数据的备份指令。
39、可选的,所述备份模块在基于所述数据存放地址,向所述目标节点发送针对元数据的备份指令时,具体用于向所述目标节点发送元数据打包指令,以使所述目标节点对所述数据存放地址中的元数据打包,生成元数据备份文件;将所述元数据备份文件存储到目标存储设备上。
40、可选的,所述备份模块在基于所述数据存放地址,向所述目标节点发送针对基础数据的备份指令时,具体用于向所述目标节点发送基础数据打包指令,以使所述目标节点对所述数据存放地址中的基础数据打包并压缩,生成基础数据备份文件;将所述基础数据备份文件存储到目标存储设备上。
41、第三方面,本公开提供了一种电子设备,包括:
42、存储器;
43、处理器;以及
44、计算机程序;
45、其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现第一方面任一项所述的方法。
46、第四方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的方法。
47、本公开提供的技术方案与现有技术相比具有如下优点:
48、本公开提供的数据库在线备份方法、装置、设备及介质,通过连接mongodb副本集群中与主节点同步数据的目标节点,并向目标节点发送状态调节指令,以使目标节点调节至目标状态,然后向目标节点发送备份指令,以使目标节点将目标节点中的数据备份到目标存储设备上,最后在接收到目标节点完成备份的反馈消息后,向目标节点发送解锁指令,以使目标节点解除目标状态。在备份过程中,因为目标节点处于目标状态时暂停与主节点数据同步,所以在备份目标节点的数据时目标节点的数据不会并发修改操作,因此目标节点的备份数据处于一个一致的状态,保证了物理备份的数据的一致性,而且未关停mongodb副本集群中的主节点,由此实现了mongodb副本集群的在线一致性物理备份。
1.一种数据库在线备份方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述向所述目标节点发送备份指令,以使所述目标节点将所述目标节点中的数据备份到目标存储设备上,包括:
3.如权利要求2所述的方法,其特征在于,所述向所述目标节点发送针对元数据备和基础数据的备份指令,包括:
4.如权利要求3所述的方法,其特征在于,所述目标节点在所述目标状态下生成备份游标,在所述备份游标存在时,所述目标节点禁止对基础数据进行删减和更改;
5.如权利要求2所述的方法,其特征在于,所述向所述目标节点发送针对元数据和基础数据的备份指令之前,还包括:
6.如权利要求5所述的方法,其特征在于,所述基于所述数据存放地址,向所述目标节点发送针对元数据的备份指令,包括:
7.如权利要求5所述的方法,其特征在于,所述基于所述数据存放地址,向所述目标节点发送针对基础数据的备份指令,包括:
8.一种数据库在线备份装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。