数据库数据的同步方法、装置及设备与流程

文档序号:15851282发布日期:2018-11-07 09:59阅读:255来源:国知局
数据库数据的同步方法、装置及设备与流程

本申请涉及数据库技术领域,尤其是涉及到一种数据库数据的同步方法、装置及设备。

背景技术

为了使开发工作迅速而灵活,很多公司使用mongodb数据库,并将一些重要的数据存放在mongodb数据库中。其中mongodb是一个基于分布式文件存储的数据库,由c++语言编写,旨在为万维网(worldwideweb,web)应用提供可扩展的高性能数据存储解决方案。而mongodb副本集是一组mongodb服务器,其中有一个主服务器(primary,又称主节点),用于处理客户端请求;还有多个备份服务器(secondary,又称备份节点),用于保存主服务器的数据副本。

在一个软件项目中,通常会有测试环境和生产环境,有时为了更好的测试,需要将生产环境中mongodb副本集节点的数据库数据全量同步到测试环境中。目前传统的同步方式是使用mongodump备份命令先将生产环境的mongodb副本集的数据库数据从硬盘中进行解压并备份出来,再使用mongorestore还原命令把备份出的数据还原到测试环境mongodb副本集中。

然而,当需要同步较大量的mongodb副本集节点的数据库数据时,通过上述传统的同步方式会造成全量同步一次时间过长,进而会造成数据库数据同步效率较低,并且如果同步过程中数据库数据被修改,也会造成数据同步不准确的问题。



技术实现要素:

有鉴于此,本申请提供了一种数据库数据的同步方法、装置及设备,主要目的在于解决目前当需要同步较大量的mongodb副本集节点的数据库数据时,通过上述传统的同步方式会造成数据库数据同步效率较低,并且如果同步过程中数据库数据被修改,也会造成数据同步不准确的问题。

根据本申请的一个方面,提供了一种数据库数据的同步方法,该方法包括:

获取生产环境中mongodb副本集目标节点的数据库数据对应的数据压缩文件;

检测所述数据压缩文件的压缩格式是否与测试环境中mongodb副本集能够启动的数据压缩文件的压缩格式相同;

若相同,则为所述mongodb副本集目标节点配置写锁;

将获取到的所述数据压缩文件分别复制到所述测试环境中的各个mongodb副本集节点。

优选的,所述将获取到的所述数据压缩文件分别复制到所述测试环境中的各个mongodb副本集节点之前,所述方法还包括:

关闭所述测试环境中各个mongodb副本集节点的mongodb进程,并将所述测试环境中各个mongodb副本集节点的数据库数据进行清空;

所述将获取到的所述数据压缩文件分别复制到所述测试环境中的各个mongodb副本集节点,具体包括:

将获取到的所述数据压缩文件分别复制到所述测试环境中数据库数据清空后的各个mongodb副本集节点。

优选的,所述方法还包括:

在所述数据压缩文件复制完成之后,启动所述测试环境中各个mongodb副本集节点的mongodb进程;

重新配置所述测试环境中mongodb副本集的ip地址,并强制初始化,使得所述测试环境的mongodb副本集重新选举主节点和备份节点。

优选的,在所述数据压缩文件复制完成之后,所述方法还包括:

解开所述生产环境中所述mongodb副本集目标节点配置的写锁。

优选的,所述重新配置所述测试环境中mongodb副本集的ip地址,具体包括:

将所述测试环境中mongodb副本集的ip地址,由所述生产环境的ip地址更改为所述测试环境的ip地址。

优选的,若所述目标节点内存中存在mongodb数据库的热数据,则所述获取生产环境中mongodb副本集目标节点的数据库数据对应的数据压缩文件,具体包括:

获取所述目标节点内存中的mongodb数据库的热数据;

将所述热数据写入硬盘中,并与所述硬盘中所述目标节点的数据库数据一起生成新的数据压缩文件;

所述将获取到的所述数据压缩文件分别复制到所述测试环境中的各个mongodb副本集节点,具体包括:

将所述新的数据压缩文件分别复制到所述测试环境中的各个mongodb副本集节点。

优选的,所述获取生产环境中mongodb副本集目标节点的数据库数据对应的数据压缩文件,具体包括:

获取生产环境的mongodb副本集中各个节点的负载状态信息;

根据所述负载状态信息,确定所述各个节点中负载压力最小的节点;

获取所述负载压力最小的节点数据库数据对应的数据压缩文件;

为所述mongodb副本集目标节点配置写锁,具体包括:

为所述负载压力最小的节点配置写锁。

优选的,根据所述负载状态信息,确定所述各个节点中负载压力最小的节点,具体包括:

根据所述负载状态信息,确定所述各个节点中负载压力最小的备份节点;

获取所述负载压力最小的节点数据库数据对应的数据压缩文件,具体包括:

获取所述负载压力最小的备份节点数据库数据对应的数据压缩文件;

为所述负载压力最小的节点配置写锁,具体包括:

为所述负载压力最小的备份节点配置写锁。

根据本申请的另一方面,提供了一种数据库数据的同步装置,该装置包括:

获取单元,用于获取生产环境中mongodb副本集目标节点的数据库数据对应的数据压缩文件;

检测单元,用于检测所述获取单元获取的数据压缩文件的压缩格式是否与测试环境中mongodb副本集能够启动的数据压缩文件的压缩格式相同;

配置单元,用于若所述检测单元检测出所述数据压缩文件的压缩格式与测试环境中mongodb副本集能够启动的数据压缩文件的压缩格式相同,则为所述mongodb副本集目标节点配置写锁;

同步单元,用于将所述获取单元获取到的所述数据压缩文件分别复制到所述测试环境中的各个mongodb副本集节点。

优选的,所述装置还包括:清空单元;

所述清空单元,用于关闭所述测试环境中各个mongodb副本集节点的mongodb进程,并将所述测试环境中各个mongodb副本集节点的数据库数据进行清空;

所述同步单元,具体用于将获取到的所述数据压缩文件分别复制到所述测试环境中数据库数据清空后的各个mongodb副本集节点。

优选的,所述装置还包括:

后处理单元,用于在所述数据压缩文件复制完成之后,启动所述测试环境中各个mongodb副本集节点的mongodb进程;

重新配置所述测试环境中mongodb副本集的ip地址,并强制初始化,使得所述测试环境的mongodb副本集重新选举主节点和备份节点。

优选的,所述后处理单元,还用于在所述数据压缩文件复制完成之后,解开所述生产环境中所述mongodb副本集节点配置的写锁。

优选的,所述后处理单元,具体用于将所述测试环境中mongodb副本集的ip地址,由所述生产环境的ip地址更改为所述测试环境的ip地址。

优选的,所述获取单元,具体用于若所述目标节点内存中存在mongodb数据库的热数据,则获取所述目标节点内存中的mongodb数据库的热数据;

将所述热数据写入硬盘中,并与所述硬盘中所述目标节点的数据库数据一起生成新的数据压缩文件;

所述同步单元,具体用于将所述新的数据压缩文件分别复制到所述测试环境中的各个mongodb副本集节点。

优选的,所述获取单元,具体包括:

获取模块,用于获取生产环境的mongodb副本集中各个节点的负载状态信息;

确定模块,用于根据所述获取模块获取到的负载状态信息,确定所述各个节点中负载压力最小的节点;

所述获取模块,还用于获取所述负载压力最小的节点数据库数据对应的数据压缩文件;

所述配置单元,具体用于为所述负载压力最小的节点配置写锁。

优选的,所述确定模块,具体用于根据所述负载状态信息,确定所述各个节点中负载压力最小的备份节点;

所述获取模块,具体用于获取所述负载压力最小的备份节点数据库数据对应的数据压缩文件;

所述配置单元,具体还用于为所述负载压力最小的备份节点配置写锁。

依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述数据库数据的同步方法。

依据本申请再一个方面,提供了一种数据库数据同步的实体设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据库数据的同步方法。

借由上述技术方案,本申请提供的一种数据库数据的同步方法、装置及设备,与目前传统的同步方式相比,本申请在检测出生产环境中mongodb副本集目标节点数据库数据对应的数据压缩文件的压缩格式与测试环境中mongodb副本集能够启动的数据压缩文件的压缩格式相同时,说明将生产环境中该目标节点对应的数据库数据压缩文件直接复制到测试环境中,测试环境中的mongodb副本集也能够启动该数据压缩文件,因此本申请可以将该目标节点的数据压缩文件直接复制到测试环境中的各个mongodb副本集节点。这样无需先解压该数据压缩文件并备份出来然后再还原到测试环境mongodb副本集的过程,当需要同步较大量的mongodb副本集节点的数据库数据时,mongodb数据库数据全量同步一次的时长大大缩减,可以提升mongodb数据库数据的同步效率。并且在数据同步之前对生产环境的目标节点加写锁,可以避免数据库数据在同步过程中被修改,保证mongodb数据库数据同步的准确性。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1示出了本申请实施例提供的一种数据库数据的同步方法的流程示意图;

图2示出了本申请实施例提供的另一种数据库数据的同步方法的流程示意图;

图3示出了本申请实施例提供的两个不同环境的mongodb副本集实例示意图;

图4示出了本申请实施例提供的跨环境mongodb数据库数据同步实例示意图;

图5示出了本申请实施例提供的跨环境mongodb数据库数据同步后的配置实例示意图;

图6示出了本申请实施例提供的一种数据库数据的同步装置的结构示意图;

图7示出了本申请实施例提供的另一种数据库数据的同步装置的结构示意图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

针对目前当需要同步较大量的mongodb副本集节点的数据库数据时,通过传统的同步方式会造成mongodb数据库数据同步效率较低,并且如果同步过程中mongodb数据库数据被修改,也会造成数据同步不准确的问题,本实施例提供了一种数据库数据的同步方法,可以提高mongodb数据库数据同步效率以及准确性,如图1所示,该方法包括:

101、获取生产环境中mongodb副本集目标节点的数据库数据对应的数据压缩文件。

其中,数据压缩文件中保存有mongodb副本集的数据库数据,根据mongodb数据库机制,mongodb副本集的数据库数据会被压缩保存在数据压缩文件中,以便节省存储空间资源,在mongodb副本集工作时会自动读取该数据压缩文件中保存的数据,在读取过程中自动进行解压。

mongodb副本集包含多个节点(mongodb服务器),其中有一个主节点和多个备份节点,如果主节点崩溃了,备份节点会自动将其中的一个成员升级为新的主节点,由于备份节点用于保存主节点的数据副本,所以这些节点的mongodb数据库数据都相同。在本实施例中,具体选取生产环境mongodb副本集中哪个节点作为目标节点(即利用该目标节点上的数据库数据压缩文件进行跨环境数据同步),可以根据实际业务需求进行选择设定。例如,可以选用mongodb副本集中的一个备份节点作为目标节点,避免选择主节点而导致影响客户端请求的处理。

对于本实施例的执行主体可以为用于跨环境mongodb数据库数据同步的装置或设备,可以实现提高数据库数据同步效率以及准确性。需要说明的是,本实施例提供的方法,除了应用在从生产环境向测试环境同步mongodb数据库数据的场景以外,还可以应用于其它跨环境的数据同步场景,例如可以应用于从测试环境向生产环境同步mongodb数据库数据的场景,还可以应用于从生产环境向开发环境同步mongodb数据库数据的场景等。

102、检测获取到的数据压缩文件的压缩格式是否与测试环境中mongodb副本集能够启动的数据压缩文件的压缩格式相同。

其中,数据压缩文件的压缩格式可以通过数据压缩文件的扩展名进行判定。

例如,可以向测试环境的mongodb副本集发送一条查询指令,通过该查询指令可以查询得到测试环境中mongodb副本集能够启动的数据压缩文件的压缩格式,然后将获取到的生产环境中数据压缩文件的压缩格式与查询得到的数据压缩文件的压缩格式进行比对,如果二者压缩格式相同,说明将生产环境中该目标节点对应的数据库数据压缩文件直接复制到测试环境中,测试环境中的mongodb副本集也能够直接启动该数据压缩文件,进而确定可以利用该目标节点对应的mongodb数据库数据压缩文件直接进行跨环境的mongodb数据库数据同步;如果二者压缩格式不相同,说明直接复制该目标节点的数据压缩文件后,测试环境中的mongodb副本集无法启动该数据压缩文件,即无法读取该文件中的数据,因此不能利用该目标节点对应的mongodb数据库数据压缩文件直接进行跨环境的mongodb数据库数据同步。

103、若获取到的数据压缩文件的压缩格式与测试环境中mongodb副本集能够启动的数据压缩文件的压缩格式相同,则为生产环境中mongodb副本集目标节点配置写锁。

对于本实施例,在利用该目标节点对应的mongodb数据库数据压缩文件直接进行跨环境的mongodb数据库数据同步之前,需要对该目标节点加写锁,即禁止该目标节点的mongodb数据库被写入数据,状态为只读状态,进而使得该目标节点在数据同步的过程中,不会修改正在复制的数据压缩文件中的数据,可以保证mongodb数据库数据同步的准确性,从而保证跨环境数据同步的数据一致性。

104、将获取到的数据压缩文件分别复制到测试环境中的各个mongodb副本集节点。

例如,测试环境中的mongodb副本集存在四个节点,在数据同步过程中,可以将生产环境中该目标节点的数据压缩文件,同时复制到测试环境的这四个节点,进而实现跨环境mongodb数据库数据同步的过程。

通过本实施例上述数据库数据的同步方法,与目前传统的同步方式相比,当需要跨环境同步1000gb的mongodb数据库数据时,传统方式导出数据的耗时会超过8个小时,再加上数据导入时间,总计时间将超过16小时,而本实施例无需先解压数据压缩文件并备份出来然后再还原到测试环境mongodb副本集的过程,利用生产环境中目标节点的数据压缩文件直接进行向测试环境的mongodb数据库数据同步,同步1000gb的mongodb数据库数据只需要1小时,大大缩减了mongodb数据库数据全量同步一次的时长,可以提升mongodb数据库数据的同步效率。并且在数据同步之前对生产环境的目标节点加写锁,可以避免数据库数据在同步过程中被修改,保证mongodb数据库数据同步的准确性。

进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本数据库数据同步方法的整体流程,本实施例提供了另一种数据库数据的同步方法,如图2所示,该方法包括:

201、获取生产环境的mongodb副本集中各个节点的负载状态信息。

其中,负载状态信息中包含节点服务器的负载压力情况。对于本实施例,当接收到需要跨环境mongodb数据库数据同步的指令时,可以获取生产环境的mongodb副本集中各个节点实时的负载状态信息,然后基于该负载状态信息确定合适的节点作为目标节点,即利用该目标节点上的数据库数据压缩文件进行跨环境数据同步。

202、根据获取到的负载状态信息,确定生产环境的mongodb副本集各个节点中负载压力最小的节点。

例如,生产环境的mongodb副本集存在3个节点,其中a节点的负载值为80%,b节点的负载值为40%,c节点的负载值为60%,那么可以确定b节点的负载压力最小。

通过选择生产环境的mongodb副本集各个节点中负载压力最小的节点作为目标节点,然后利用该目标节点上的数据库数据压缩文件进行跨环境数据同步,可以避免节点由于负载压力过大而导致出现节点宕机的情况,可以保证数据同步的正常进行。进一步的,为了避免选择主节点而导致影响客户端请求的处理,作为一种优选方式,可以选取负载压力最小的备份节点作为目标节点,相应的,步骤202具体可以包括:根据获取到的负载状态信息,确定生产环境的mongodb副本集各个节点中负载压力最小的备份节点。

203、获取负载压力最小的节点数据库数据对应的数据压缩文件。

为了方便读取数据,有时会将mongodb副本集的数据库数据中的热数据存储在内存,其中,热数据可以认为是最新时间段的热门业务数据,例如根据业务需求热数据可以是最近30分钟、或最近1小时的热门数据,这样就可以直接从内存中获取当前热门的mongodb数据库数据。对于本实施例,若负载压力最小的节点内存中存在mongodb数据库的热数据,此时如果需要跨环境全量同步mongodb副本集的数据库数据,在此条件下,作为一种优选方式,相应的步骤203具体可以包括:获取负载压力最小的节点内存中的mongodb数据库的热数据;然后将该热数据写入到硬盘中,并与硬盘中该节点的数据库数据一起生成新的数据压缩文件。

基于上述步骤202的优选方式,相应的,步骤203具体可以包括:获取负载压力最小的备份节点数据库数据对应的数据压缩文件。

204、检测获取到的数据压缩文件的压缩格式是否与测试环境中mongodb副本集能够启动的数据压缩文件的压缩格式相同。

生产环境的mongodb副本集的数据库数据在硬盘中保存的形态为数据压缩文件,由于该数据压缩文件的压缩格式在不同的实际业务中可能会有所不同,为了使得测试环境的mongodb副本集能够启动生产环境中的mongodb数据库数据,目前传统的跨环境mongodb数据库数据同步的方式是先将数据压缩文件全部解压到内存中统一文件格式并导出备份出来,然后再导入测试环境中,虽然该统一文件格式可被测试环境中mongodb副本集启动,但是这一同步过程需要耗费较长的时间。而本实施例可以在检测出生产环境的中mongodb副本集的数据压缩文件的压缩格式与测试环境中mongodb副本集能够启动的数据压缩文件的压缩格式相同时,将生产环境的数据压缩文件直接复制到测试环境中的各个mongodb副本集节点,大大缩减了mongodb数据库数据全量同步一次的时长,可以提升mongodb数据库数据的同步效率。

205、若获取到的数据压缩文件的压缩格式与测试环境中mongodb副本集能够启动的数据压缩文件的压缩格式相同,则为生产环境中负载压力最小的节点配置写锁。

对于本实施例,在利用负载压力最小的节点的mongodb数据库数据压缩文件进行跨环境的mongodb数据库数据同步之前,需要对该负载压力最小的节点加写锁,以便在数据同步过程中,禁止该负载压力最小的节点的mongodb数据库被写入数据,保证跨环境数据同步的数据一致性。

基于上述步骤202的优选方式,如果利用负载压力最小的备份节点实现跨环境的mongodb数据库数据同步,则步骤205中为生产环境中负载压力最小的节点配置写锁的步骤,具体可以包括:为负载压力最小的备份节点配置写锁。

206、关闭测试环境中各个mongodb副本集节点的mongodb进程,并将测试环境中各个mongodb副本集节点的数据库数据进行清空。

在本实施例中,在利用数据压缩文件进行跨环境的mongodb数据库数据同步之前,为了避免与测试环境的mongodb副本集数据库数据起冲突,需要先清空测试环境中各个mongodb副本集节点的数据库数据,然后再利用数据压缩文件进行跨环境的mongodb数据库数据同步。

207、将获取到的数据压缩文件分别复制到测试环境中数据库数据清空后的各个mongodb副本集节点。

这里可以采用同时复制的策略,即将获取到数据压缩文件同时复制到测试环境中数据库数据清空后的各个mongodb副本集节点;或者如果测试环境节点间数据传输的速度较快,还可以先将获取到的数据压缩文件先复制到测试环境中的一个节点,然后由该节点进行同环境数据复制,进而可以进一步提高mongodb数据库数据同步的效率,并且还可以对生产环境中负载压力最小的节点提前解开写锁,提前恢复该节点的写入数据功能,进而降低对生产环境mongodb副本集的影响。

基于上述步骤203中的优选方式,在将节点内存中mongodb数据库的热数据写入到硬盘中,并与硬盘中该节点的数据库数据一起生成新的数据压缩文件之后,可以将新的数据压缩文件分别复制到测试环境中的各个mongodb副本集节点,进而实现跨环境全量同步mongodb副本集的数据库数据。

208、在数据压缩文件复制完成之后,启动测试环境中各个mongodb副本集节点的mongodb进程,以及解开生产环境中mongodb副本集负载压力最小的节点配置的写锁。

由于之前关闭了测试环境中各个mongodb副本集节点的mongodb进程,为了恢复测试环境中mongodb副本集的功能,在数据压缩文件复制完成之后,需要重新启动这些关闭的节点mongodb进程。并且为了使得该数据压缩文件原所在的生产环境中负载压力最小的节点恢复写入数据功能,以便同步生产环境中其它节点的mongodb数据库数据,可以相应解开该负载压力最小的节点的写锁,在解开该节点的写锁之后,该节点将会同步同环境下其它节点的mongodb数据库数据。

209、重新配置测试环境中mongodb副本集的ip地址,并强制初始化,使得测试环境的mongodb副本集重新选举主节点和备份节点。

在启动测试环境中节点mongodb进程之后,由于数据压缩文件是从生产环境中复制过来的,测试环境中所有副本集的ip是生产环境的ip地址,为了测试环境中mongodb副本集能够正常运行,需要重新配置测试环境中mongodb副本集的ip地址,并强制初始化,使得测试环境的mongodb副本集重新选举主节点和备份节点。作为一种优选方式,重新配置测试环境中mongodb副本集的ip地址的步骤,具体可以包括:将测试环境中mongodb副本集的ip地址,由生产环境的ip地址更改为测试环境的ip地址。通过上述这种配置和初始化过程,可以使得测试环境中mongodb副本集能够基于从生产环境复制过来的数据压缩文件正常运行副本集的功能。

为了方便理解本实施例提供的数据库数据的同步方法,给出如下应用场景实例,但不限于此:

例如,如图3所示,有两个mongodb副本环境,分别是生产环境和测试环境,其中生产环境是三节点的mongodb副本集,相应的mongodb数据库存在1000gb的数据,而测试环境也是三节点的mongodb副本集,两个环境是独立运行的。此时为了更好的测试,需要将生产环境中mongodb副本集节点的数据库数据全量同步到测试环境中。为了方便描述,将生产环境mongodb副本集三个节点分别标记为a1、a2、a3;将测试环境mongodb副本集三个节点分别标记为b1、b2、b3,其中a1节点和b1节点为主节点(primary节点),a2、a3和b2、b3为备份节点(secondary节点)。

首先如果a3节点内存中存在mongodb数据库热数据,则将该热数据写入硬盘,并与硬盘中a3节点的数据库数据一起生成新的数据压缩文件。在写入完成后,在a3节点上加写锁,此时a3节点mongodb数据库将停止往硬盘写数据,硬盘上该数据压缩文件中的mongodb数据库数据将保持不变,具体如图4所示;然后为了避免与测试环境的mongodb副本集数据库数据起冲突,需要先清空测试环境中各个mongodb副本集节点的数据库数据,相应的远程杀死测试环境中三个节点的mongodb进程,并清空测试环境三个节点mongodb数据库数据;在清空数据之后,将a3节点的数据压缩文件复制到b1、b2、b3三个节点,具体可使用三个复制进程并行复制,如图4所示,由于该数据压缩文件是压缩过的,1000gb的mongodb数据库数据实际存储在硬盘的文件大小在300gb到400gb之间,在千兆网络中,一小时就能复制完毕。

在复制全部完成后,为了a3节点恢复数据写入功能,以便同步a1和a2节点的mongodb数据库数据,可解开a3节点的写锁,具体如图5所示;并且为了恢复测试环境中mongodb副本集的功能,可重新启动测试环境b1、b2、b3三个节点进程,由于mongodb数据库文件是从生产环境复制过来的,所有副本集的ip地址是生产环境的ip地址,需要重新配置副本集的ip地址为测试环境的ip地址并强制初始化,如图5所示,在强制初始化完成后,测试环境mongodb副本集会自动选举出主节点和备份节点。

通过上述这种mongodb数据库数据跨环境同步方式,可明显减少同步tb级的mongodb数据库数据,并且能够保证数据一致性。

进一步的,作为图1方法的具体实现,本申请实施例提供了一种数据库数据的同步装置,如图6所示,该装置包括:获取单元31、检测单元32、配置单元33、同步单元34。

获取单元31,可以用于获取生产环境中mongodb副本集目标节点的数据库数据对应的数据压缩文件;获取单元31为本装置中获取mongodb数据库对应数据文件的主要功能模块,在得到该文件后触发检测单元32进行工作。

检测单元32,可以用于检测获取单元31获取的数据压缩文件的压缩格式是否与测试环境中mongodb副本集能够启动的数据压缩文件的压缩格式相同;检测单元32为本装置中跨环境检测数据压缩文件的压缩格式的主要功能模块。

配置单元33,可以用于若检测单元32检测出数据压缩文件的压缩格式与测试环境中mongodb副本集能够启动的数据压缩文件的压缩格式相同,则为mongodb副本集目标节点配置写锁;配置单元33为本装置中配置节点写锁的主要功能模块,在配置节点写锁之后,该节点将无法往硬盘中写入新的数据。

同步单元34,可以用于将获取单元31获取到的数据压缩文件分别复制到测试环境中的各个mongodb副本集节点。同步单元34为本装置中数据同步的主要功能模块。

在具体的应用场景中,在利用数据压缩文件进行跨环境的mongodb数据库数据同步之前,为了避免与测试环境的mongodb副本集数据库数据起冲突,需要先清空测试环境中各个mongodb副本集节点的数据库数据,相应的如图7所示,本装置还包括:清空单元35;

清空单元35,可以用于关闭测试环境中各个mongodb副本集节点的mongodb进程,并将测试环境中各个mongodb副本集节点的数据库数据进行清空;

同步单元34,具体可以用于将获取到的数据压缩文件分别复制到测试环境中数据库数据清空后的各个mongodb副本集节点。

在具体的应用场景中,由于之前关闭了测试环境中各个mongodb副本集节点的mongodb进程,为了恢复测试环境中mongodb副本集的功能,在数据压缩文件复制完成之后,需要重新启动这些关闭的节点mongodb进程。相应的如图7所示,本装置还包括:后处理单元36;

后处理单元36,可以用于在数据压缩文件复制完成之后,启动测试环境中各个mongodb副本集节点的mongodb进程;然后重新配置测试环境中mongodb副本集的ip地址,并强制初始化,使得测试环境的mongodb副本集重新选举主节点和备份节点。

在具体的应用场景中,为了使得该数据压缩文件原所在的生产环境中目标节点恢复写入数据功能,以便同步生产环境中其它节点的mongodb数据库数据,相应的,后处理单元36,还可以用于在数据压缩文件复制完成之后,解开生产环境中mongodb副本集节点配置的写锁。

在具体的应用场景中,由于数据压缩文件是从生产环境中复制过来的,测试环境中所有副本集的ip是生产环境的ip地址,为了测试环境中mongodb副本集能够正常运行,相应的,后处理单元36,具体可以用于将测试环境中mongodb副本集的ip地址,由生产环境的ip地址更改为测试环境的ip地址。

在具体的应用场景中,为了实现跨环境全量同步mongodb副本集的数据库数据,相应的获取单元31,具体可以用于若目标节点内存中存在mongodb数据库的热数据,则获取目标节点内存中的mongodb数据库的热数据;将热数据写入硬盘中,并与硬盘中目标节点的数据库数据一起生成新的数据压缩文件。

相应的,同步单元32,具体可以用于将新的数据压缩文件分别复制到测试环境中的各个mongodb副本集节点。

在具体的应用场景中,如图7所示,获取单元31,具体包括:获取模块311、确定模块312;

获取模块311,可以用于获取生产环境的mongodb副本集中各个节点的负载状态信息;

确定模块312,可以用于根据获取模块311获取到的负载状态信息,确定各个节点中负载压力最小的节点;

获取模块311,还可以用于获取负载压力最小的节点数据库数据对应的数据压缩文件;

配置单元33,具体可以用于为负载压力最小的节点配置写锁。

通过选择生产环境的mongodb副本集各个节点中负载压力最小的节点作为目标节点,然后利用该目标节点上的数据库数据压缩文件进行跨环境数据同步,可以避免节点由于负载压力过大而导致出现节点宕机的情况,可以保证数据同步的正常进行。

在具体的应用场景中,为了避免选择主节点而导致影响客户端请求的处理,可以选取负载压力最小的备份节点作为目标节点,相应的确定模块312,具体可以用于根据负载状态信息,确定各个节点中负载压力最小的备份节点;

获取模块311,具体可以用于获取负载压力最小的备份节点数据库数据对应的数据压缩文件;

配置单元33,具体还可以用于为负载压力最小的备份节点配置写锁。

需要说明的是,本申请实施例提供的一种数据库数据的同步装置所涉及各功能单元的其它相应描述,可以参考图1和图2中的对应描述,在此不再赘述。

基于上述如图1和图2所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1和图2所示的数据库数据的同步方法。该程序可以使用shell工具编写得到。

基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。

基于上述如图1和图2所示的方法,以及图6、图7所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种数据库数据同步的实体设备,具体可以为计算机,服务器,或者网络设备等,该实体设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1和图2所示的数据库数据的同步方法。

可选地,该实体设备还可以包括用户接口、网络接口、摄像头、射频(radiofrequency,rf)电路,传感器、音频电路、wi-fi模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard)等,可选用户接口还可以包括usb接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)等。

本领域技术人员可以理解,本实施例提供的一种数据库数据同步的实体设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。

存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述数据库数据同步的实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本申请的技术方案,。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1