数据同步方法、装置和系统的制作方法_2

文档序号:8942954阅读:来源:国知局
]通过第一数据库服务器获取对应于第一数据库的写操作命令,并将该写操作命令写入第一日志文件中,然后向第二数据库服务器发送包括该写操作命令的日志信息,使得第二数据库服务器根据该日志信息对第二数据库执行上述写操作命令,完成数据同步备份;解决了相关技术因存在主库与从库中的数据同时丢失的风险,而导致整个数据库系统的可用性较差的问题;避免了两个数据库中的数据完全丢失的风险,保证了整个数据库系统的高可用性。
[0075]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
【附图说明】
[0076]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0077]图1是根据一示例性实施例示出的一种实施环境的示意图;
[0078]图2是根据一示例性实施例示出的一种数据同步方法的流程图;
[0079]图3是根据另一示例性实施例示出的一种数据同步方法的流程图;
[0080]图4是根据再一示例性实施例示出的一种数据同步方法的流程图;
[0081]图5是根据一示例性实施例示出的一种数据同步装置的框图;
[0082]图6是根据另一示例性实施例示出的一种数据同步装置的框图;
[0083]图7是根据一示例性实施例示出的一种数据同步系统的框图;
[0084]图8是根据一示例性实施例示出的一种装置的框图。
【具体实施方式】
[0085]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0086]图1是根据一示例性实施例示出的一种实施环境的示意图。该实施环境包括:第一数据库服务器120和第二数据库服务器140。第一数据库服务器120和第二数据库服务器140之间可通过有线网络或者无线网络相连。
[0087]如图1所示,第一数据库服务器120包括:第一数据库122,以及对应于该第一数据库122部署的第一数据同步装置124。第二数据库服务器140包括:第二数据库142,以及对应于该第二数据库142部署的第二数据同步装置144。第一数据同步装置124和第二数据同步装置144用于负责第一数据库122与第二数据库142之间的数据同步备份。可选地,第一数据库122和第二数据库142均为Redis数据库。
[0088]另外,在图1所示的实施环境中,仅以第一数据库122和第一数据同步装置124部署于同一设备(也即第一数据库服务器120)中,第二数据库142和第二数据同步装置144部署于同一设备(也即第二数据库服务器140)中为例。在其它可能的实施方式中,第一数据库122和第一数据同步装置124可以分别部署于两台互相独立的设备中,第二数据库142和第二数据同步装置144也可分别部署于两台互相独立的设备中,本公开对此不作限定。
[0089]在相关技术提供的采用主从模式部署的Redis数据库系统中,存在主库与从库中的数据同时丢失的风险。由于Redis数据库存储于内存中,当主库发生故障时,主库内的数据有可能被清空。此时如果从库与主库间正在进行数据同步备份,则从库内的数据也同样会被清空,进而造成两个Redis数据库中的数据完全丢失。
[0090]在本公开实施例提供的技术方案中,Redis数据库系统采用双主模式部署。通过将对应于第一数据库的写操作命令记录为日志信息,在第二数据库中以重放操作的方式完成数据同步备份。即便第一数据库发生故障时被清空,由于因故障导致的数据清空不会产生相应的写操作命令,故第二数据库中的数据不会被清空,从而避免两个数据库中的数据完全丢失的风险。
[0091]下面,通过几个实施例对本公开提供的技术方案进行介绍和说明。
[0092]图2是根据一示例性实施例示出的一种数据同步方法的流程图。该数据同步方法可应用于图1所示实施环境中的第一数据库服务器120中。该数据同步方法可以包括如下几个步骤:
[0093]在步骤202中,获取对应于第一数据库的写操作命令。
[0094]在步骤204中,将该写操作命令写入第一日志文件中。
[0095]在步骤206中,向第二数据库服务器发送包括该写操作命令的日志信息,第二数据库服务器用于根据该日志信息对第二数据库执行上述写操作命令。
[0096]综上所述,本实施例提供的数据同步方法,通过第一数据库服务器获取对应于第一数据库的写操作命令,并将该写操作命令写入第一日志文件中,然后向第二数据库服务器发送包括该写操作命令的日志信息,使得第二数据库服务器根据该日志信息对第二数据库执行上述写操作命令,完成数据同步备份;解决了相关技术因存在主库与从库中的数据同时丢失的风险,而导致整个数据库系统的可用性较差的问题;避免了两个数据库中的数据完全丢失的风险,保证了整个数据库系统的高可用性。
[0097]图3是根据另一示例性实施例示出的一种数据同步方法的流程图。该数据同步方法可应用于图1所示实施环境中的第二数据库服务器140中。该数据同步方法可以包括如下几个步骤:
[0098]在步骤302中,接收第一数据库服务器发送的日志信息,该日志信息包括对应于第一数据库的写操作命令。
[0099]在步骤304中,将该日志信息写入第二日志文件中。
[0100]在步骤306中,根据该日志信息对第二数据库执行写操作命令。
[0101]综上所述,本实施例提供的数据同步方法,通过第二数据库服务器接收第一数据库服务器发送的日志信息,并根据该日志信息对第二数据库执行写操作命令;解决了相关技术因存在主库与从库中的数据同时丢失的风险,而导致整个数据库系统的可用性较差的问题;避免了两个数据库中的数据完全丢失的风险,保证了整个数据库系统的高可用性。
[0102]图4是根据再一示例性实施例示出的一种数据同步方法的流程图。本实施例以该数据同步方法应用于图1所示实施环境中进行举例说明。该数据同步方法可以包括如下几个步骤:
[0103]在步骤401中,第一数据库服务器获取对应于第一数据库的写操作命令。
[0104]第一数据库对外提供数据读写业务。用户可通过触发写操作命令对第一数据库中的数据进行更改。写操作命令包括操作类型和操作参数。其中,操作类型包括但不限于增加、删除和修改中的至少一种。操作参数包括上述操作所对应的位置和数据。例如,某个写操作命令所包括的操作类型为删除,操作参数包括XX位置XX数据,则该写操作命令表示在第一数据库中的XX位置删除XX数据。
[0105]在步骤402中,第一数据库服务器将获取的写操作命令写入第一日志文件中。
[0106]第一日志文件用于记录用户触发的对应于第一数据库的写操作命令。第一日志文件存储于第一数据库服务器的外存储器中,例如硬盘。因此,即使第一数据库服务器断电,第一日志文件也不会丢失。
[0107]另外,为了便于日志信息的管理,可仅设置一个第一日志文件。当然,在其它可能的实施方式中,第一数据库服务器中也可设置多个第一日志文件。例如,为每种不同操作类型分别对应设置一个第一日志文件,一个第一日志文件用于记录一种操作类型的写操作命令。
[0108]另外,第一数据库服务器在将写操作命令写入第一日志文件之前,还可执行如下几个步骤:
[0109]1、第一数据库服务器检测第一日志文件的剩余存储空间是否小于写操作命令的字节大小;
[0110]2、若第一日志文件的剩余存储空间小于写操作命令的字节大小,则第一数据库服务器获取第一日志文件中的第一目标日志信息,并删除该第一目标日志信息。
[0111]其中,第一目标日志信息的字节大小与第一日志文件的剩余存储空间之和大于或者等于写操作命令的字节大小,且第一目标日志信息是第一日志文件中最早记录的日志信息。第一数据库服务器可采用LRU (Least Recently Used,最近最少使用)算法从第一日志文件中选取所要删除的第一目标日志信息。在本实施例中,通过选取最早记录的日志信息进行删除,可以避免将第一日志文件中最近记录的、还未同步至第二数据库服务器中的日志信息删除,为数据库的同步提供可靠保障。
[0112]在步骤403中,第一数据库服务器向第二数据库服务器发送包括上述获取的写操作命令的日志信息。
[0113]相应地,第二数据库服务器接收第一数据库服务器发送的日志信息。
[0114]第一数据库服务器通过有线网络或者无线网络与第二数据库服务器之间建立通信连接,第一数据库服务器通过该通信连接向第二数据库服务器发送日志信息,该日志信息中包括上述对应于第一数据库的写操作命令。
[0115]在一种可能的实施方式中,步骤403包括如下几个子步骤:
[0116]1、第一数据库服务器获取第一日志文件
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1