数据库数据同步方法、服务器及系统技术方案

技术编号:26170995 阅读:25 留言:0更新日期:2020-10-31 13:41
本申请提供了一种数据库数据同步方法、服务器及系统,涉及数据库技术领域,通过主服务器获取预写数据,生成该预写数据对应的第一请求信息和线程的操作命令,并将操作命令发送给从服务器;从服务器接收操作命令,并根据操作命令重构第二请求信息,该第二请求信息包含主服务器的第一请求信息和该从服务器上处理第一请求信息的线程的信息,由于主服务器和从服务器可以在相同的线程上同步处理相同的预写数据,从而保证主服务器和从服务器中预写数据的一致性。

【技术实现步骤摘要】
数据库数据同步方法、服务器及系统
本申请涉及数据库
,具体而言,涉及一种数据库数据同步方法、服务器及系统。
技术介绍
数据库用于对数据进行储存,并且用户可以通过数据库对数据库中储存的数据进行新增、截取、更新、删除等操作,为了提高数据库的可用性,一般都会设计一个从服务器与主服务器通信连接,用于同步主服务器的预写数据。现有技术中,主服务器和从服务器之间的数据同步方式一般为,主服务器接收消息,根据消息生成预写数据,从服务器定期请求主服务器发送预写数据,并将获取到的预写数据在从服务器中进行执行。但是,上述方法无法保证主服务器和从服务器中预写数据的强一致性。
技术实现思路
有鉴于此,本申请实施例的目的在于提供一种数据库数据同步方法、服务器及系统,能够使得主服务器和从服务器在同一个线程上同步处理相同的预写数据,从而保证了主服务器和从服务器中预写数据的一致性。第一方面,本申请实施例提供一种数据库数据同步方法,该方法应用于主服务器,该方法包括:主服务器获取预写数据;主服务器根据预写数据生成处理预写数据对应的第一请求信息和线程的操作命令,并将操作命令发送给从服务器;其中,操作命令用于指示从服务器根据操作命令重构第二请求信息,根据第二请求信息与主服务器同步在线程上处理预写数据;主服务器根据第一请求与从服务器同步在线程上处理预写数据。可选地,主服务器根据预写数据生成处理预写数据对应的第一请求信息和线程的操作命令之前,上述方法还包括:主服务器获取预写数据的操作键值;主服务器对操作键值进行哈希处理,得到对应的线程编号;主服务器根据线程编号,确认主服务器和从服务器同步处理预写数据的线程。可选地,在将操作命令发送给从服务器之前,上述方法还包括:主服务器获取线程的滑动窗口已处理预写数据的容量;主服务器判断容量是否不大于预设容量阈值;若小于预设容量阈值,则主服务器继续将操作命令发送给从服务器;若等于预设容量阈值,则主服务器暂停将操作命令发送给从服务器。可选地,上述方法还包括:主服务器定时检查是否有新的预写数据产生,若有,则通过文件传输接口将新的预写数据发送给从服务器;主服务器接收从服务器同步处理新的预写数据的第一反馈信息,第一反馈信息用于指示从服务器已完成同步处理新的预写数据。可选地,上述方法还包括:主服务器分别获取主服务器和从服务器预设时间内同步产生的错误率;主服务器判断错误率是否大于第一预设阈值,若大于第一预设阈值,则主服务器将错误率对应的预写数据重新通过文件传输接口发送给从服务器;主服务器接收从服务器同步处理错误率对应的预写数据的第二反馈信息,第二反馈信息用于指示从服务器已完成同步处理错误率对应的预写数据。可选地,上述方法还包括:主服务器分别获取主服务器和从服务器预设时间内同步预写数据的数据量,计算得到主服务器和从服务器同步预写数据的数据量的差值;主服务器判断差值是否不大于第二预设阈值时,获取主服务器中差值对应的预写数据的标号及时间点;主服务器根据预写数据的标号及时间点,在预写数据对应线程上与从服务器同步处理预写数据。第二方面,本申请实施例提供一种数据库数据同步方法,该方法应用于从服务器,该方法包括:从服务器接收主服务器发送的处理预写数据对应的第一请求信息和线程的操作命令;从服务器根据操作命令重构第二请求信息,根据第二请求信息与主服务器同步在线程上处理预写数据。可选地,上述方法还包括:从服务器接收主服务器通过文件传输接口发送的新的预写数据;从服务器根据新的预写数据与多个线程的对应关系构建第三请求信息,其中,第三请求信息包括新的预写数据分别与多个线程的对应关系;从服务器根据第三请求信息在对应的多个线程上同步处理新的预写数据,并将第一反馈信息发送给主服务器,其中,第一反馈信息用于指示从服务器已完成同步处理新的预写数据。可选地,上述方法还包括:从服务器接收主服务器通过文件传输接口发送的错误率对应的预写数据;从服务器根据错误率对应的预写数据构建第四请求信息,其中,第四请求信息包括错误率对应的预写数据分别与多个线程的对应关系;从服务器根据第四请求信息在对应的多个线程上与主服务器同步处理错误率对应的预写数据,并将第二反馈信息发送给主服务器,其中,第二反馈信息用于指示从服务器已完成同步处理错误率对应的预写数据。第三方面,一种服务器,应用于主服务器,服务器包括:获取模块、生成模块和第一同步处理模块;获取模块,用于获取预写数据;生成模块,用于根据预写数据生成处理预写数据对应的第一请求信息和线程的操作命令,并将操作命令发送给从服务器;其中,操作命令用于指示从服务器根据操作命令重构第二请求信息,根据第二请求信息与主服务器同步在线程上处理预写数据;第一同步处理模块,用于根据第一请求与从服务器同步在线程上处理预写数据。可选地,上述服务器还包括第一处理模块;获取模块还用于获取预写数据的操作键值;第一处理模块用于对操作键值进行哈希处理,得到对应的线程编号,根据线程编号,确认主服务器和从服务器同步处理预写数据的线程。可选地,上述服务器还包括第二处理模块,获取模块还用于获取线程的滑动窗口已处理预写数据的容量;第二处理模块用于判断已处理预写数据的容量是否不大于预设容量阈值,若小于预设容量阈值,则主服务器继续将操作命令发送给从服务器;若等于预设容量阈值,则主服务器暂停将操作命令发送给从服务器。可选地,上述服务器还包括第三处理模块,用于定时检查是否有新的预写数据产生,若有,则通过文件传输接口将新的预写数据发送给从服务器;第一同步处理模块,还用于接收从服务器同步处理新的预写数据的第一反馈信息,第一反馈信息用于指示从服务器已完成新的预写数据的同步处理。可选地,上述服务器还包括第四处理模块,用于分别获取主服务器和从服务器预设时间内同步产生的错误率,判断错误率是否大于第一预设阈值,若大于第一预设阈值,则主服务器将错误率对应的预写数据重新通过文件传输接口发送给从服务器;第一同步处理模块,还用于接收从服务器同步处理错误率对应的预写数据的第二反馈信息,第二反馈信息用于指示从服务器已完成错误率对应的预写数据的同步处理。可选地,上述服务器还包括第五处理模块,用于分别获取主服务器和从服务器预设时间内同步预写数据的数据量,计算得到主服务器和从服务器同步预写数据的数据量的差值,判断差值是否不大于第二预设阈值时,获取主服务器中差值对应的预写数据的标号及时间点;第一同步处理模块,还用于根据预写数据的标号及时间点,在预写数据对应线程上与从服务器同步处理预写数据。第四方面,本申请实施例提供一种服务器,应用于从服务器,服务器包括:接收模块和第二同步处理模块;接收模块,用于接收主服务器发送的处理预写数据对应的第一请求信息和线程的操作命令;第二同步处理模块,用于根据操作命令重构第二请求信息,根据第二请求信息与主服务器同步在线程上处理预写数据。可选地,上述服务器还包括第一发送模块;接收模块,还用于接收主服务器通过文件传输接口发送的新的预写数据;第一发送模块,用于根据新的预本文档来自技高网...

【技术保护点】
1.一种数据库数据同步方法,应用于主服务器,其特征在于,所述方法包括:/n所述主服务器获取预写数据;/n所述主服务器根据所述预写数据生成处理所述预写数据对应的第一请求信息和线程的操作命令,并将所述操作命令发送给从服务器;其中,所述操作命令用于指示所述从服务器根据所述操作命令重构第二请求信息,根据所述第二请求信息与所述主服务器同步在所述线程上处理所述预写数据;/n所述主服务器根据所述第一请求与所述从服务器同步在所述线程上处理预写数据。/n

【技术特征摘要】
1.一种数据库数据同步方法,应用于主服务器,其特征在于,所述方法包括:
所述主服务器获取预写数据;
所述主服务器根据所述预写数据生成处理所述预写数据对应的第一请求信息和线程的操作命令,并将所述操作命令发送给从服务器;其中,所述操作命令用于指示所述从服务器根据所述操作命令重构第二请求信息,根据所述第二请求信息与所述主服务器同步在所述线程上处理所述预写数据;
所述主服务器根据所述第一请求与所述从服务器同步在所述线程上处理预写数据。


2.根据权利要求1所述的数据库数据同步方法,其特征在于,所述主服务器根据所述预写数据生成处理所述预写数据对应的第一请求信息和线程的操作命令之前,所述方法还包括:
所述主服务器获取所述预写数据的操作键值;
所述主服务器对所述操作键值进行哈希处理,得到对应的线程编号;
所述主服务器根据所述线程编号,确认所述主服务器和所述从服务器同步处理所述预写数据的线程。


3.根据权利要求1所述的数据库数据同步方法,其特征在于,在将所述操作命令发送给所述从服务器之前,所述方法还包括:
所述主服务器获取所述线程的滑动窗口已处理预写数据的容量;
所述主服务器判断所述已处理预写数据的容量是否不大于预设容量阈值;
若小于所述预设容量阈值,则所述主服务器继续将所述操作命令发送给所述从服务器;
若等于所述预设容量阈值,则所述主服务器暂停将所述操作命令发送给所述从服务器。


4.根据权利要求1所述的数据库数据同步方法,其特征在于,所述方法还包括:
所述主服务器定时检查是否有新的预写数据产生,若有,则通过文件传输接口将所述新的预写数据发送给所述从服务器;
所述主服务器接收所述从服务器同步处理所述新的预写数据的第一反馈信息,其中,所述第一反馈信息用于指示所述从服务器已完成同步处理所述新的预写数据。


5.根据权利要求1所述的数据库数据同步方法,其特征在于,所述方法还包括:
所述主服务器分别获取所述主服务器和所述从服务器预设时间内同步产生的错误率;
所述主服务器判断所述错误率是否大于第一预设阈值,若大于第一预设阈值,则所述主服务器将所述错误率对应的预写数据重新通过文件传输接口发送给所述从服务器;
所述主服务器接收所述从服务器同步处理所述错误率对应的预写数据的第二反馈信息,其中,所述第二反馈信息用于指示所述从服务器已完成同步处理所述错误率对应的预写数据。


6.根据权利要求1-5任一项所述的数据库数据同步方法,其特征在于,所述方法还包括:
所述主服务器分别获取所述主服务器和所述从服务器预设时间内同步所述预写数据的数据量,计算得到所述主服务器和所述从服务器同步所述预写数据的数据量的差值;
所述主服务器判断所述差值是否不大于第二预设阈值时,获取所述主服务器中所述差值对应的所述预写数据的标号及时间点;
所述主服务器根据所述预写数据的标号及时间点,在所述预写数据对应线程上与所述从服务器同步处理所述预写数据。


7.一种数据库数据同步方法,应用于从服务器,其特征在于,所述方法包括:
所述从服务器接收主服务器发送的处理预写数据对应的第一请求信息和线程的操作命令;
所述从服务器根据所述操作命令重构第二请求信息,根据所述第二请求信息与所述主服务器同步在所述线程上处理预写数据。


8.根据权利要求7所述的数据库数据同步方法,其特征在于,所述方法还包括:
所述从服务器接收所述主服务器通过文件传输接口发送的新的预写数据;
所述从服务器根据所述新的预写数据与多个线程的对应关系构建第三请求信息,其中,所述第三请求信息包括所述新的预写数据分别与多个线程的对应关系;
所述从服务器根据所述第三请求信息在对应的多个线程上同步处理所述新的预写数据,并将第一反馈信息发送给所述主服务器,其中,所述第一反馈信息用于指示所述从服务器已完成所述新的预写数据的同步处理。


9.根据权利要求7所述的数据库数据同步方法,其特征在于,所述方法还包括:
所述从服务器接收所述主服务器通过文件传输接口发送的错误率对应的预写数据;
所述从服务器根据错误率对应的预写数据构建第四请求信息,其中,所述第四请求信息包括所述错误率对应的预写数据分别与多个线程的对应关系;
所述从服务器根据所述第四请求信息在对应的多个线程上与所述主服务器同步处理所述错误率对应的预写数据,并将第二反馈信息发送给所述主服务器,其中,所述第二反馈信息用于指示所述从服务器已完成同步处理所述错误率对应的预写数据。


10.一种服务器,应用于主服务器,其特征在于,所述服务器包括:获取模块、生成模块和第一同步处理模块;
所述获取模块,用于获取预写数据;
所述生成模块,用于根据所述预写数据生成处理所述预写数据对应的第一请求信息和线程的操作命令,并将所述操作命令发送给从服务器;其中,所述操作命令用于指示...

【专利技术属性】
技术研发人员:胡方旭
申请(专利权)人:北京嘀嘀无限科技发展有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1