CN108376142B - 一种分布式内存数据库数据同步方法及系统 - Google Patents
一种分布式内存数据库数据同步方法及系统 Download PDFInfo
- Publication number
- CN108376142B CN108376142B CN201810021484.6A CN201810021484A CN108376142B CN 108376142 B CN108376142 B CN 108376142B CN 201810021484 A CN201810021484 A CN 201810021484A CN 108376142 B CN108376142 B CN 108376142B
- Authority
- CN
- China
- Prior art keywords
- library
- host
- log
- redo
- standby
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及一种分布式内存数据库数据同步方法,包括接收事务提交请求,主库根据事务提交请求记录重做日志;通过同步模式将重做日志发送至备库所在主机;更新分布式内存数据库的主库数据;通过同步模式接收备库所在主机反馈的重做日志接收完成的确认信息;根据确认信息生成事务完成的提示消息,并将提示消息发送至客户端;主库所在主机的复制模块通过异步模式将重做日志发送至备库所在主机;备库加载主库所在主机的复制模块发送的重做日志,完成数据更新。该方法通过同步模式与异步模式的结合,实现备库有主库完整的数据,实现主备强一致性。本发明还提供一种分布式内存数据库数据同步系统。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种分布式内存数据库数据同步方法及系统。
背景技术
分布式内存数据库主备之间如果采用异步复制,可以保证分布式内存数据库主备数据的一致性,但是宕机瞬间无法保证数据的强一致性,存在数据差异的可能性。如果采用同步机制,会对数据的更新性能有一定的影响,且主库正常备库宕机后,同步机制将失效,影响主库与备库数据更新。并且同步机制占用了大量的网络资源,同步机制导致完成一个事务的时间过长。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种分布式内存数据库数据同步方法及系统。
本发明解决上述技术问题的技术方案如下:一种分布式内存数据库数据同步方法,包括:
接收客户端发送的事务提交请求,分布式内存数据库的主库根据所述事务提交请求记录重做日志redo;
所述主库通过同步模式将所述重做日志redo发送至备库所在主机;
所述主库更新分布式内存数据库的主库数据;
所述主库通过同步模式接收所述备库所在主机反馈的重做日志redo接收完成的确认信息;
所述主库根据所述确认信息生成事务完成的提示消息,并将所述提示消息发送至客户端;
所述主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机;
所述备库加载所述主库所在主机的复制模块发送的重做日志redo,完成所述备库数据更新。
本发明的有益效果是:同步模式实时发送数据,能保证数据的实时性,但不能保证数据的准确性,不具备数据补发功能,可以保证备库宕机的时候,确保主库正常工作。异步模式可以保证数据的完整性,具有断点续传的功能,因为是异步模式,发送数据的延迟性,导致在宕机的瞬间,有部分数据丢失。本发明通过同步模式与异步模式的结合,主库在接收到备库反馈的日志接收完成确认信息后,即向客户端反馈事物完成提示信息,降低对外提供服务的网络io资源,降低单事务的完成的时间,提高事务完成的运行速度;且主库会异步向备库发送重做日志,保障数据的完整性,实现备库有主库完整的数据,实现主备强一致性。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述主库通过同步模式将所述重做日志redo发送至备库所在主机包括:
所述主库通过同步模式利用RDMA方式调用Infiniband网卡将所述重做日志redo发送至备库所在主机。
采用上述进一步方案的有益效果是,同步机制采用RDMA方式调用Infiniband网卡,实现强一致性同步机制。通过调用Infiniband网卡降低了分布式内存数据库对外提供服务网络资源的压力,提高了对外提供服务的网络性能。提高了分布式内存数据库数据更新的性能,实现了主备数据的强一致性。
进一步,所述主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机包括:
所述主库所在主机的复制模块通过异步模式利用RDMA方式调用Infiniband网卡将所述重做日志redo发送至备库所在主机。
采用上述进一步方案的有益效果是,异步机制采用RDMA方式调用Infiniband网卡,实现强一致性同步机制。通过调用Infiniband网卡降低了分布式内存数据库对外提供服务网络资源的压力,提高了对外提供服务的网络性能。提高了分布式内存数据库数据更新的性能,实现了主备数据的强一致性。
进一步,上述方法还包括当所述主库通过同步模式将所述重做日志redo发送至备库所在主机时,在备库所在主机根据重做日志redo生成同步日志;当所述主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机时,在备库所在主机根据重做日志redo生成异步日志;当备库检测到与主库的网络异常时,检测所述同步日志与异步日志是否一致,当所述同步日志与异步日志不一致时,根据所述同步日志修复所述异步日志。
采用上述进一步方案的有益效果是,当备库检测到与主库的网络异常时,备库检测同步日志与异步日志是否一致,当所述同步日志与异步日志不一致时,根据所述同步日志修复所述异步日志,把丢失的数据补充到异步日志。备库加载主库异步发送和同步日志补充的所有数据的重做日志redo,更新到备库,同步和异步两者结合后,加载数据的时候先加载异步日志,如果异步日志与同步日志不一致,再加载比异步日志多的同步日志的数据,实现主备强一致性。
进一步,所述主库通过同步模式将所述重做日志redo发送至备库所在主机后,上述方法还包括;
备库所在主机将所述重做日志redo放入接收缓存,并异步写入备库所在主机的磁盘。
采用上述进一步方案的有益效果是,同步机制中主库将重做日志redo发送到备库所在主机,备库所在主机将重做日志redo放入接收缓存,并异步写入磁盘,随后向主库反馈重做日志redo接收完成的确认信息,主库根据所述确认信息生成事务完成的提示消息,并将所述提示消息发送至客户端。正常情况下,同步发送的日志只做备份,不会被用到,只有在异常的情况下,才用来修复异步发送的日志。因此,只要备库接收完同步发送的重做日志,主库即向客户端反馈事务完成的提示消息,提高了对外提供服务的网络性能,提高了分布式内存数据库数据更新的性能,实现了主备数据的强一致性。
本发明解决上述技术问题的另一技术方案如下:一种分布式内存数据库数据同步系统,包括:
日志生成模块,用于接收客户端发送的事务提交请求,控制分布式内存数据库的主库根据所述事务提交请求记录重做日志redo;
同步模块,用于控制所述主库通过同步模式将所述重做日志redo发送至备库所在主机;所述主库更新分布式内存数据库的主库数据;所述主库通过同步模式接收所述备库所在主机反馈的重做日志redo接收完成的确认信息;所述主库根据所述确认信息生成事务完成的提示消息,并将所述提示消息发送至客户端;
异步模块,用于控制所述主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机;控制所述备库加载所述主库所在主机的复制模块发送的重做日志redo,完成所述备库数据更新。
本发明的有益效果是:同步模式实时发送数据,能保证数据的实时性,但不能保证数据的准确性,不具备数据补发功能,可以保证备库宕机的时候,确保主库正常工作。异步模式可以保证数据的完整性,具有断点续传的功能,因为是异步模式,发送数据的延迟性,导致在宕机的瞬间,有部分数据丢失。本发明通过同步模式与异步模式的结合,主库在接收到备库反馈的日志接收完成确认信息后,即向客户端反馈事物完成提示信息,降低对外提供服务的网络io资源,降低单事务的完成的时间,提高事务完成的运行速度;且主库会异步向备库发送重做日志,保障数据的完整性,实现备库有主库完整的数据,实现主备强一致性。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述同步模块具体用于:
所述主库通过同步模式利用RDMA方式调用Infiniband网卡将所述重做日志redo发送至备库所在主机。
采用上述进一步方案的有益效果是,同步机制采用RDMA方式调用Infiniband网卡,实现强一致性同步机制。通过调用Infiniband网卡降低了分布式内存数据库对外提供服务网络资源的压力,提高了对外提供服务的网络性能。提高了分布式内存数据库数据更新的性能,实现了主备数据的强一致性。
进一步,所述异步模块具体用于:
所述主库所在主机的复制模块通过异步模式利用RDMA方式调用Infiniband网卡将所述重做日志redo发送至备库所在主机。
采用上述进一步方案的有益效果是,异步机制采用RDMA方式调用Infiniband网卡,实现强一致性同步机制。通过调用Infiniband网卡降低了分布式内存数据库对外提供服务网络资源的压力,提高了对外提供服务的网络性能。提高了分布式内存数据库数据更新的性能,实现了主备数据的强一致性。
进一步,上述系统还包括修复模块;
所述同步模块当所述主库通过同步模式将所述重做日志redo发送至备库所在主机时,在备库所在主机根据重做日志redo生成同步日志;
所述异步模块当所述主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机时,在备库所在主机根据重做日志redo生成异步日志;
所述修复模块用于当备库检测到与主库的网络异常时,检测所述同步日志与异步日志是否一致,当所述同步日志与异步日志不一致时,根据所述同步日志修复所述异步日志。
采用上述进一步方案的有益效果是,当备库检测到与主库的网络异常时,备库检测同步日志与异步日志是否一致,当所述同步日志与异步日志不一致时,根据所述同步日志修复所述异步日志,把丢失的数据补充到异步日志。备库加载主库异步发送和同步日志补充的所有数据的重做日志redo,更新到备库。同步和异步两者结合后,加载数据的时候先加载异步日志,如果异步日志与同步日志不一致,再加载比异步日志多的同步日志的数据,实现主备强一致性。
进一步,所述同步模块还用于:所述主库通过同步模式将所述重做日志redo发送至备库所在主机后,备库所在主机将所述重做日志redo放入缓存,数据更新到内存。
采用上述进一步方案的有益效果是,同步机制中主库将重做日志redo发送到备库所在主机,备库所在主机将重做日志redo放入接收缓存,并异步写入备库所在主机的磁盘,随后向主库反馈重做日志redo接收完成的确认信息,主库根据所述确认信息生成事务完成的提示消息,并将所述提示消息发送至客户端。正常情况下,同步发送的日志只做备份,不会被用到,只有在异常的情况下,才用来修复异步发送的日志。因此,只要备库接收完同步发送的重做日志,主库即向客户端反馈事务完成的提示消息,提高了对外提供服务的网络性能,提高了分布式内存数据库数据更新的性能,实现了主备数据的强一致性。
附图说明
图1为本发明一实施例提供的分布式内存数据库数据同步方法的示意性流程图;
图2为本发明另一实施例提供的分布式内存数据库数据同步方法的信令交互示意图;
图3为本发明一实施例中分布式内存数据库示意图;
图4为本发明一实施例提供的分布式内存数据库数据同步系统的示意性结构框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实施例只用于解释本发明,并非用于限定本发明的范围。
图1给出了本发明实施例提供的一种分布式内存数据库数据同步方法的示意性流程图。图2给出了本发明实施例提供的一种分布式内存数据库数据同步方法的信令交互示意图。如图1和2所示,该方法包括:
S110,接收客户端发送的事务提交请求,分布式内存数据库的主库根据所述事务提交请求记录重做日志redo;
S120,所述主库通过同步模式将所述重做日志redo发送至备库所在主机;
S130,所述主库更新分布式内存数据库的主库数据;
S140,所述主库通过同步模式接收所述备库所在主机反馈的重做日志redo接收完成的确认信息;
S150,所述主库根据所述确认信息生成事务完成的提示消息,并将所述提示消息发送至客户端;
S160,所述主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机;
S170,所述备库加载所述主库所在主机的复制模块发送的重做日志redo,完成所述备库数据更新。
该实施例中,同步模式实时发送数据,能保证数据的实时性,但不能保证数据的准确性,不具备数据补发功能,可以保证备库宕机的时候,确保主库正常工作。异步模式可以保证数据的完整性,具有断点续传的功能,因为是异步模式,发送数据的延迟性,导致在宕机的瞬间,有部分数据丢失。本发明通过同步模式与异步模式的结合,主库在接收到备库反馈的日志接收完成确认信息后,即向客户端反馈事物完成提示信息,降低对外提供服务的网络io资源,降低单事务的完成的时间,提高事务完成的运行速度;且主库会异步向备库发送重做日志,保障数据的完整性,实现备库有主库完整的数据,实现主备强一致性。
可选地,作为本发明另外一个实施例,主库通过同步模式将所述重做日志redo发送至备库所在主机包括:所述主库通过同步模式利用RDMA方式调用Infiniband网卡将所述重做日志redo发送至备库所在主机。
RDMA(Remote Direct Memory Access)为远程直接数据存取的缩写。
InfiniBand架构是一种支持多并发链接的“转换线缆”技术,在这种技术中,每种链接都可以达到2.5Gbps的运行速度。这种架构在一个链接的时候速度是500MB/秒,四个链接的时候速度是2GB/秒,12个链接的时候速度可以达到6GB/秒”。“InfiniBand技术不是用于一般网络连接的,它的主要设计目的是针对服务器端的连接问题的。因此,InfiniBand技术将会被应用于服务器与服务器(比如复制,分布式工作等),服务器和存储设备(比如SAN和直接存储附件)以及服务器和网络之间(比如LAN、WANs和the Internet)的通信。
该实施例中,同步机制采用RDMA方式调用Infiniband网卡,实现强一致性同步机制。通过调用Infiniband网卡降低了分布式内存数据库对外提供服务网络资源的压力,提高了对外提供服务的网络性能。提高了分布式内存数据库数据更新的性能,实现了主备数据的强一致性。
可选地,作为本发明另一实施例,主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机包括:所述主库所在主机的复制模块通过异步模式利用RDMA方式调用Infiniband网卡将所述重做日志redo发送至备库所在主机。
该实施例中,异步机制采用RDMA方式调用Infiniband网卡,实现强一致性同步机制。通过调用Infiniband网卡降低了分布式内存数据库对外提供服务网络资源的压力,提高了对外提供服务的网络性能。提高了分布式内存数据库数据更新的性能,实现了主备数据的强一致性。
本发明实施例中,采用了异步与同步机制结合的方式,异步与同步机制均采用RDMA方式调用Infiniband网卡,实现强一致性同步机制。通过调用Infiniband网卡降低了分布式内存数据库对外提供服务网络资源的压力,提高了对外提供服务的网络性能。提高了分布式内存数据库数据更新的性能,实现了主备数据的强一致性。
可选地,作为本发明另一实施例,上述方法还包括当所述主库通过同步模式将所述重做日志redo发送至备库所在主机时,在备库所在主机根据重做日志redo生成同步日志;当所述主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机时,在备库所在主机根据重做日志redo生成异步日志;当备库检测到与主库的网络异常时,检测所述同步日志与异步日志是否一致,当所述同步日志与异步日志不一致时,根据所述同步日志修复所述异步日志。
该实施例中,当备库检测到与主库的网络异常时,备库检测同步日志与异步日志是否一致,当所述同步日志与异步日志不一致时,根据所述同步日志修复所述异步日志,把丢失的数据补充到异步日志。备库加载主库异步发送和同步日志补充的所有数据的重做日志redo,更新到备库,同步和异步两者结合后,加载数据的时候先加载异步日志,如果异步日志与同步日志不一致,再加载比异步日志多的同步日志的数据,实现主备强一致性。
可选地,作为本发明另一实施例,主库通过同步模式将所述重做日志redo发送至备库所在主机后,上述方法还包括;备库所在主机将所述重做日志redo放入缓存,数据更新到内存。
该实施例中,同步机制中主库将重做日志redo发送到备库所在主机,备库所在主机将重做日志redo放入接收缓存,并异步写入备库所在主机的磁盘,随后向主库反馈重做日志redo接收完成的确认信息,主库根据所述确认信息生成事务完成的提示消息,并将所述提示消息发送至客户端。正常情况下,同步发送的日志只做备份,不会被用到,只有在异常的情况下,才用来修复异步发送的日志。因此,只要备库接收完同步发送的重做日志,主库即向客户端反馈事务完成的提示消息,提高了对外提供服务的网络性能,提高了分布式内存数据库数据更新的性能,实现了主备数据的强一致性。
上文结合图1至图2,详细描述了根据本发明实施例提供分布式内存数据库数据同步方法。下面结合图3和图4,详细描述本发明实施例提供分布式内存数据库数据同步系统。
图3为本发明实施例中分布式内存数据库示意图,该图中仅展示了主机A和主机B,省略了其他主机。如图3所示,主机A包括主库和复制模块,主机B包括备库和两个复制模块。主库在接收到事物提交请求后,写redo日志,并通过同步模式将redo日志发送至备库所在主机,在备库所在主机生成同步日志。主库还通过复制模块将redo日志发送至备库所在主机,在备库所在主机生成异步日志,备库加载异步日志,完成数据更新。
图4给出了本发明实施例提供的一种分布式内存数据库数据同步系统的示意性结构框图。如图4所示,该系统包括日志生成模块、同步模块和异步模块。日志生成模块接收客户端发送的事务提交请求,分布式内存数据库的主库根据所述事务提交请求记录重做日志redo;同步模块控制所述主库通过同步模式将所述重做日志redo发送至备库所在主机;所述主库更新分布式内存数据库的主库数据;所述主库通过同步模式接收所述备库所在主机反馈的重做日志redo接收完成的确认信息;所述主库根据所述确认信息生成事务完成的提示消息,并将所述提示消息发送至客户端;异步模块控制所述主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机;控制所述备库加载所述主库所在主机的复制模块发送的重做日志redo,完成所述备库数据更新。
该实施例中,同步模式实时发送数据,能保证数据的实时性,但不能保证数据的准确性,不具备数据补发功能,可以保证备库宕机的时候,确保主库正常工作。异步模式可以保证数据的完整性,具有断点续传的功能,因为是异步模式,发送数据的延迟性,导致在宕机的瞬间,有部分数据丢失。本发明通过同步模式与异步模式的结合,主库在接收到备库反馈的日志接收完成确认信息后,即向客户端反馈事物完成提示信息,降低对外提供服务的网络io资源,降低单事务的完成的时间,提高事务完成的运行速度;且主库会异步向备库发送重做日志,保障数据的完整性,实现备库有主库完整的数据,实现主备强一致性。
可选地,作为本发明另外一个实施例,同步模块具体用于:所述主库通过同步模式利用RDMA方式调用Infiniband网卡将所述重做日志redo发送至备库所在主机。
该实施例中,同步机制采用RDMA方式调用Infiniband网卡,实现强一致性同步机制。通过调用Infiniband网卡降低了分布式内存数据库对外提供服务网络资源的压力,提高了对外提供服务的网络性能。提高了分布式内存数据库数据更新的性能,实现了主备数据的强一致性。
可选地,作为本发明另外一个实施例,异步模块具体用于:所述主库所在主机的复制模块通过异步模式利用RDMA方式调用Infiniband网卡将所述重做日志redo发送至备库所在主机。
该实施例中,异步机制采用RDMA方式调用Infiniband网卡,实现强一致性同步机制。通过调用Infiniband网卡降低了分布式内存数据库对外提供服务网络资源的压力,提高了对外提供服务的网络性能。提高了分布式内存数据库数据更新的性能,实现了主备数据的强一致性。
可选地,作为本发明另外一个实施例,上述系统还包括修复模块;同步模块当所述主库通过同步模式将所述重做日志redo发送至备库所在主机时,在备库所在主机根据重做日志redo生成同步日志;异步模块当所述主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机时,在备库所在主机根据重做日志redo生成异步日志;修复模块用于当备库检测到与主库的网络异常时,检测所述同步日志与异步日志是否一致,当所述同步日志与异步日志不一致时,根据所述同步日志修复所述异步日志。
该实施例中,当备库检测到与主库的网络异常时,备库检测同步日志与异步日志是否一致,当所述同步日志与异步日志不一致时,根据所述同步日志修复所述异步日志,把丢失的数据补充到异步日志。备库加载主库异步发送和同步日志补充的所有数据的重做日志redo,更新到备库。同步和异步两者结合后,加载数据的时候先加载异步日志,如果异步日志与同步日志不一致,再加载比异步日志多的同步日志的数据,实现主备强一致性。
可选地,作为本发明另外一个实施例,同步模块还用于:主库通过同步模式将所述重做日志redo发送至备库所在主机后,备库所在主机将所述重做日志redo放入接收缓存,并异步写入备库所在主机的磁盘。
该实施例中,同步机制中主库将重做日志redo发送到备库所在主机,备库所在主机将重做日志redo放入接收缓存,并异步写入备库所在主机的磁盘,随后向主库反馈重做日志redo接收完成的确认信息,主库根据所述确认信息生成事务完成的提示消息,并将所述提示消息发送至客户端。正常情况下,同步发送的日志只做备份,不会被用到,只有在异常的情况下,才用来修复异步发送的日志。因此,只要备库接收完同步发送的重做日志,主库即向客户端反馈事务完成的提示消息,提高了对外提供服务的网络性能,提高了分布式内存数据库数据更新的性能,实现了主备数据的强一致性。
下面结合一具体实施例描述本发明的实现过程。
1分布式内存数据库启动,初始化Infiniband网卡,主备库异步与同步模块建立连接;
db01 2017-11-01 10:07:08 info DrSend:172.21.4.115-9191(7)connected,type=infiniband
2应用连接分布式内存数据库,插入5条数据;
3应用提交事务,分布式内存数据库服务端主库写5条数据的redo日志;
4主库把5条数据的redo日志通过同步模式利用RDMA协议发送到备库所在的主机;
5把5条数据更新到分布式内存数据库的主库;
6主库通过同步模式利用RDMA协议接收备库发送的日志接收完成的确认消息,确认数据已经发送到备库主机;
7主库更新成功的消息返回客户端,事务提交成功。
8主库的复制模块通过异步模式调用RDMA协议,把5条数据的redo日志发送到备库主机,备库加载主库异步发送的5条数据的redo日志,完成数据的更新,正常情况下,同步发送的日志只做备份,不会被用到。
异常情况下:主库与备库网络异常。
1应用连接分布式内存数据库,插入5条数据;
2应用提交事务,分布式内存数据库服务端主库写5条数据的redo日志;
3主库把5条数据的redo日志通过同步模式利用RDMA协议发送到备库所在的主机;
4把5条数据更新到分布式内存数据库的主库;
5主库通过同步模式利用RDMA协议接收备库发送的确认消息,确认数据已经发送到备库主机;
6主库更新成功的消息返回客户端,事务提交成功;
7复制模块通过异步模式调用RDMA协议,把数据的redo日志发送到备库主机的时候,网络异常中断,异步只发送了3条数据到备库,丢失了两条。备库通过网络异常探测到与主库的网络发生了异常(网络中断或者主库所在的主机宕机),备库的复制模块修复接收的redo日志,比较同步日志与异步日志是否一致,把丢失的2条数据补充到异步日志。备库加载主库异步发送的和同步日志补充的共5条数据的redo日志,更新到备库,实现数据的强一致性。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种分布式内存数据库数据同步方法,其特征在于,包括:
接收客户端发送的事务提交请求,分布式内存数据库的主库根据所述事务提交请求记录重做日志redo;
所述主库通过同步模式将所述重做日志redo发送至备库所在主机;
所述主库更新分布式内存数据库的主库数据;
所述主库通过同步模式接收所述备库所在主机反馈的重做日志redo接收完成的确认信息;
所述主库根据所述确认信息生成事务完成的提示消息,并将所述提示消息发送至客户端;
所述主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机;
所述备库加载所述主库所在主机的复制模块发送的重做日志redo,完成所述备库数据更新。
2.根据权利要求1所述的方法,其特征在于,所述主库通过同步模式将所述重做日志redo发送至备库所在主机包括:
所述主库通过同步模式利用RDMA方式调用Infiniband网卡将所述重做日志redo发送至备库所在主机。
3.根据权利要求1所述的方法,其特征在于,所述主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机包括:
所述主库所在主机的复制模块通过异步模式利用RDMA方式调用Infiniband网卡将所述重做日志redo发送至备库所在主机。
4.根据权利要求1至3任一项所述的方法,其特征在于,还包括当所述主库通过同步模式将所述重做日志redo发送至备库所在主机时,在备库所在主机根据重做日志redo生成同步日志;当所述主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机时,在备库所在主机根据重做日志redo生成异步日志;当备库检测到与主库的网络异常时,检测所述同步日志与异步日志是否一致,当所述同步日志与异步日志不一致时,根据所述同步日志修复所述异步日志。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述主库通过同步模式将所述重做日志redo发送至备库所在主机后,还包括;
备库所在主机将所述重做日志redo放入接收缓存,并异步写入备库所在主机的磁盘。
6.一种分布式内存数据库数据同步系统,其特征在于,包括:
日志生成模块,用于接收客户端发送的事务提交请求,控制分布式内存数据库的主库根据所述事务提交请求记录重做日志redo;
同步模块,用于控制所述主库通过同步模式将所述重做日志redo发送至备库所在主机;所述主库更新分布式内存数据库的主库数据;所述主库通过同步模式接收所述备库所在主机反馈的重做日志redo接收完成的确认信息;所述主库根据所述确认信息生成事务完成的提示消息,并将所述提示消息发送至客户端;
异步模块,用于控制所述主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机;控制所述备库加载所述主库所在主机的复制模块发送的重做日志redo,完成所述备库数据更新。
7.根据权利要求6所述的系统,其特征在于,所述同步模块具体用于:
控制所述主库通过同步模式利用RDMA方式调用Infiniband网卡将所述重做日志redo发送至备库所在主机。
8.根据权利要求6所述的系统,其特征在于,所述异步模块具体用于:
控制所述主库所在主机的复制模块通过异步模式利用RDMA方式调用Infiniband网卡将所述重做日志redo发送至备库所在主机。
9.根据权利要求6至8任一项所述的系统,其特征在于,还包括修复模块;
所述同步模块当所述主库通过同步模式将所述重做日志redo发送至备库所在主机时,在备库所在主机根据重做日志redo生成同步日志;
所述异步模块当所述主库所在主机的复制模块通过异步模式将所述重做日志redo发送至备库所在主机时,在备库所在主机根据重做日志redo生成异步日志;
所述修复模块用于当备库检测到与主库的网络异常时,检测所述同步日志与异步日志是否一致,当所述同步日志与异步日志不一致时,根据所述同步日志修复所述异步日志。
10.根据权利要求6至8任一项所述的系统,其特征在于,所述同步模块还用于:所述主库通过同步模式将所述重做日志redo发送至备库所在主机后,备库所在主机将所述重做日志redo放入接收缓存,并异步写入备库所在主机的磁盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810021484.6A CN108376142B (zh) | 2018-01-10 | 2018-01-10 | 一种分布式内存数据库数据同步方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810021484.6A CN108376142B (zh) | 2018-01-10 | 2018-01-10 | 一种分布式内存数据库数据同步方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108376142A CN108376142A (zh) | 2018-08-07 |
CN108376142B true CN108376142B (zh) | 2021-05-14 |
Family
ID=63015146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810021484.6A Active CN108376142B (zh) | 2018-01-10 | 2018-01-10 | 一种分布式内存数据库数据同步方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108376142B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765207B (zh) * | 2019-10-21 | 2022-12-09 | 福建博思软件股份有限公司 | 系统间数据同步的方法 |
CN111046051A (zh) * | 2019-11-08 | 2020-04-21 | 网联清算有限公司 | 数据一致性实现方法、装置及存储介质 |
CN111831717B (zh) * | 2020-07-15 | 2023-12-01 | 北京思特奇信息技术股份有限公司 | 一种将分布式数据库数据导入物理数据库的方法及装置 |
CN112364103B (zh) * | 2020-12-08 | 2022-03-01 | 四川长虹电器股份有限公司 | 基于关系型数据库主从异步复制架构的数据同步方法 |
CN112597251B (zh) * | 2020-12-29 | 2023-01-24 | 天津南大通用数据技术股份有限公司 | 数据库集群日志同步方法、装置、服务器及存储介质 |
CN113626517B (zh) * | 2021-06-28 | 2023-08-15 | 苏州浪潮智能科技有限公司 | PostgreSQL数据库流复制异常处理方法及装置 |
CN113535665B (zh) * | 2021-07-16 | 2022-07-22 | 北京元年科技股份有限公司 | 一种主数据库与备数据库之间同步日志文件的方法及装置 |
CN113553382B (zh) * | 2021-08-06 | 2023-06-02 | 上海达梦数据库有限公司 | 数据页的刷盘方法、装置、设备及存储介质 |
CN113987078B (zh) * | 2021-12-24 | 2022-04-19 | 中兴通讯股份有限公司 | 数据同步方法、设备及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533208B2 (en) * | 2009-09-28 | 2013-09-10 | Ebay Inc. | System and method for topic extraction and opinion mining |
CN103902617A (zh) * | 2012-12-28 | 2014-07-02 | 华为技术有限公司 | 分布式数据库同步方法和系统 |
CN105447046A (zh) * | 2014-09-02 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种分布式系统数据一致性处理方法、装置和系统 |
US9600553B1 (en) * | 2014-05-31 | 2017-03-21 | Veritas Technologies Llc | Distributed replication in cluster environments |
CN106815251A (zh) * | 2015-11-30 | 2017-06-09 | 成都华为技术有限公司 | 分布式数据库系统、数据库访问方法及装置 |
CN107145570A (zh) * | 2017-05-05 | 2017-09-08 | 上海携程商务有限公司 | 基于数据库服务架构维护服务器的方法及系统 |
CN107193960A (zh) * | 2017-05-24 | 2017-09-22 | 南京大学 | 一种分布式爬虫系统及周期性增量抓取方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170123931A1 (en) * | 2011-08-12 | 2017-05-04 | Nexenta Systems, Inc. | Object Storage System with a Distributed Namespace and Snapshot and Cloning Features |
-
2018
- 2018-01-10 CN CN201810021484.6A patent/CN108376142B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533208B2 (en) * | 2009-09-28 | 2013-09-10 | Ebay Inc. | System and method for topic extraction and opinion mining |
CN103902617A (zh) * | 2012-12-28 | 2014-07-02 | 华为技术有限公司 | 分布式数据库同步方法和系统 |
US9600553B1 (en) * | 2014-05-31 | 2017-03-21 | Veritas Technologies Llc | Distributed replication in cluster environments |
CN105447046A (zh) * | 2014-09-02 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种分布式系统数据一致性处理方法、装置和系统 |
CN106815251A (zh) * | 2015-11-30 | 2017-06-09 | 成都华为技术有限公司 | 分布式数据库系统、数据库访问方法及装置 |
CN107145570A (zh) * | 2017-05-05 | 2017-09-08 | 上海携程商务有限公司 | 基于数据库服务架构维护服务器的方法及系统 |
CN107193960A (zh) * | 2017-05-24 | 2017-09-22 | 南京大学 | 一种分布式爬虫系统及周期性增量抓取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108376142A (zh) | 2018-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108376142B (zh) | 一种分布式内存数据库数据同步方法及系统 | |
US7539703B2 (en) | Setup method for disaster recovery system | |
CN109951331B (zh) | 用于发送信息的方法、装置和计算集群 | |
US7676616B2 (en) | Method, apparatus and program storage device for providing asynchronous status messaging in a data storage system | |
US8266377B2 (en) | Computer system and control method for the computer system | |
US9606881B1 (en) | Method and system for rapid failback of a computer system in a disaster recovery environment | |
US20050071708A1 (en) | Method, system, and program for recovery from a failure in an asynchronous data copying system | |
CN110807064B (zh) | Rac分布式数据库集群系统中的数据恢复装置 | |
CN102866935B (zh) | 基于iscsi的即时复制方法和存储系统 | |
CN110825562B (zh) | 数据备份方法、装置、系统和存储介质 | |
US7194562B2 (en) | Method, system, and program for throttling data transfer | |
CN106815094B (zh) | 一种用于实现主备同步模式下事务提交的方法与设备 | |
CN116107516B (zh) | 数据写入方法、装置、固态硬盘、电子设备及存储介质 | |
US9330153B2 (en) | System, method, and computer readable medium that coordinates between devices using exchange of log files | |
CN113254275A (zh) | 一种基于分布式块设备的MySQL高可用架构方法 | |
US9069632B2 (en) | Message processing | |
WO2021082925A1 (zh) | 一种交易处理的方法及装置 | |
CN112052127B (zh) | 一种用于双机热备环境的数据同步方法及装置 | |
CN105323271B (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
US7219267B2 (en) | Method, system, and program for data corruption detection and fault isolation | |
WO2018076696A1 (zh) | 一种数据同步方法及带外管理设备 | |
CN106776142B (zh) | 一种数据存储方法以及数据存储装置 | |
CN117827544B (zh) | 热备份系统、方法、电子设备及存储介质 | |
CN111813607A (zh) | 一种基于内存融合的数据库集群恢复日志处理系统 | |
US7587628B2 (en) | System, method and computer program product for copying data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |