MySQL主从数据库的同步方法及同步系统与流程

文档序号:14474344阅读:512来源:国知局

本发明涉及数据库技术领域,具体提供了一种mysql主从数据库的同步方法及同步系统。



背景技术:

数据库的主从模式可以实现读写分离,主从数据库本身具有延迟复制机制,但是,若主从数据同步的过程中发生网络故障,主从节点的数据将无法同步,造成主从数据的不一致,同时,现有mysql数据库的延迟复制机制还存在如下问题:

1、数据同步复制所采用的线程数不能随时改变;

2、数据同步过程中,不能进行网络带宽限制干预,同步动作的延迟时间固定,不能根据网络可用带宽进行动态调整;

3、不支持数据按照指定时间进行闪回。

因此,研制一种独立于mysql本身的延迟复制机制的数据同步方法及同步系统,成为人们亟待解决的问题。



技术实现要素:

鉴于此,本发明的目的在于提供一种mysql主从数据库的同步方法及同步系统,以解决mysql本身的延迟复制方法在网络出现故障后,主从节点数据不一致且无法快速精确地完成数据的同步的问题。

本发明一方面提供了一种mysql主从数据库的同步方法,其中,主数据库设置于主服务器上,从数据库设置于从服务器上,其特征在于,包括如下步骤:

s1:监视主数据库是否有新的binlog文件产生;

s2:如果有新的binlog文件产生,则对新生成的binlog文件打包压缩并向从服务器发送,如果没有新的binlog文件产生,则返回s1;

s3:从服务器对接收的压缩binlog文件进行解包校验,得到完整数据,并保存至闪回存储区;

s4:从数据库读取闪回存储区的操作记录,实现主从数据库的精确同步。

优选,s2中对新生成的binlog文件打包压缩并向从服务器发送包括:

检测网络可用带宽;

按照与检测到的网络可用带宽对应的压缩文件个数对新生成的binlog文件进行打包压缩并向从服务器发送。

进一步优选,s2中对新生成的binlog文件打包压缩并向从服务器发送包括如下步骤:

检测网络可用带宽;

将新生成的binlog文件打包压缩,之后,按照与检测到的网络可用带宽对应的延迟时间将打包压缩后的文件延迟向从服务器发送。

进一步优选,s2中对新生成的binlog文件打包压缩并向从服务器发送之前,还包括如下步骤:

检测网络可用带宽;

按照与检测到的网络可用带宽对应的传送线程数设置压缩文件的传送线程数。

进一步优选,s2中对新生成的binlog文件打包压缩并向从服务器发送之前,还包括如下步骤:

检测网络可用带宽;

按照与检测到的网络可用带宽对应的传送带宽设置传送压缩文件使用的带宽。

本发明还提供了一种mysql主从数据库的同步系统,其中,主数据库设置于主服务器上,从数据库设置于从服务器上,包括:监视单元、文件打包压缩单元、文件解包校验单元、闪回存储区和读取单元,其中,

监视单元,设置于主服务器上,用于监视主数据库是否有新的binlog文件产生;

文件打包压缩单元,设置于主服务器上,用于在有新的binlog文件产生时,对新生成的binlog文件打包压缩并向从服务器发送;

文件解包校验单元,设置于从服务器上,用于对文件打包压缩单元发送来的压缩binlog文件进行解包校验,得到完整数据;

闪回存储区,设置于从服务器上,用于保存解包后的完整数据;

读取单元,设置于从服务器上,用于从闪回存储区读取解包后的操作记录,并同步至从数据库。

优选,所述的mysql主从数据库的同步系统还包括存储单元和网络可用带宽检测单元,其中,网络可用带宽检测单元用于检测网络可用带宽,存储单元中存储网络可用带宽与压缩文件个数的对照表,新生成的binlog文件按照对照表中与检测到的网络可用带宽对应的压缩文件个数进行打包压缩。

进一步优选,所述存储单元中还存储网络可用带宽与延迟时间的对照表,新生成的binlog文件打包压缩后,按照对照表中与检测到的网络可用带宽对应的延迟时间延迟向从服务器发送。

进一步优选,所述存储单元中还存储网络可用带宽与传送线程数的对照表,新生成的binlog文件打包压缩后使用对照表中与检测的网络可用带宽对应个数的传送线程传送至从服务器。

进一步优选,所述存储单元中还存储网络可用带宽与传送带宽的对照表,打包压缩后的文件使用对照表中与检测的网络可用带宽对应的传送带宽进行传送。

本发明提供的mysql主从数据库的同步方法,独立于mysql主从数据库本身的延迟复制机制,通过在主服务器上对binlog文件进行监视、对binlog文件打包压缩、在从服务器上对压缩包进行解包校验并进行存储,可以实现对binlog文件的备份,当数据库本身的网络出现故障后,主从数据库无法通过数据库本身的延迟复制机制实现同步,此时,可以通过读取从服务器上备份的binlog文件,实现从数据库的闪回,该同步方法不会占用数据库资源,在系统层面直接对binlog文件进行复制,对数据库内部无影响,弥补当前mysql数据库架构的数据操作容错性弱的缺点。

本发明提供的mysql主从数据库的同步系统,通过在主服务器上设置监视单元和文件打包压缩单元、在从服务器上设置文件解包校验单元和闪回存储区,可以实现对binlog文件的备份,当数据库本身的网络出现故障后,主从数据库无法通过数据库本身的延迟复制机制实现同步,此时,可以通过读取闪回存储区内备份的binlog文件,实现从数据库的闪回,该同步方法不会占用数据库资源,在系统层面直接对binlog文件进行复制,对数据库内部无影响,弥补当前mysql数据库架构的数据操作容错性弱的缺点。

附图说明

下面结合附图及实施方式对本发明作进一步详细的说明:

图1为本发明提供的mysql主从数据库的同步方法的流程图。

具体实施方式

下面将结合具体的实施方案对本发明进行进一步的解释,但并不局限本发明。

如图1所示,本发明提供了mysql主从数据库的同步方法,其中,主数据库设置于主服务器上,从数据库设置于从服务器上,其特征在于,包括如下步骤:

s1:监视主数据库是否有新的binlog文件产生;

s2:如果有新的binlog文件产生,则对新生成的binlog文件打包压缩并向从服务器发送,如果没有新的binlog文件产生,则返回s1;

s3:从服务器对接收的压缩binlog文件进行解包校验,得到完整数据,并保存至闪回存储区;

s4:从数据库读取闪回存储区的操作记录,实现主从数据库的精确同步。

该mysql主从数据库的同步方法,独立于mysql主从数据库本身的延迟复制机制,通过在主服务器上对binlog文件进行监视、对binlog文件打包压缩、在从服务器上对压缩包进行解包校验并进行存储,可以实现对binlog文件的备份,当数据库本身的网络出现故障后,主从数据库无法通过数据库本身的延迟复制机制实现同步,此时,可以通过读取从服务器上备份的binlog文件,实现从数据库的闪回,该同步方法不会占用数据库资源,在系统层面直接对binlog文件进行复制,对数据库内部无影响,弥补当前mysql数据库架构的数据操作容错性弱的缺点。

作为技术方案的改进,s2中对新生成的binlog文件打包压缩并向从服务器发送包括:

检测网络可用带宽;

按照与检测到的网络可用带宽对应的压缩文件个数对新生成的binlog文件进行打包压缩并向从服务器发送。

通过将新生成的binlog文件打包压缩成多个文件,可以降低传输风险,之后,在解包校验的时候,如果发现有错误的压缩包文件,可以单独重新传输损坏部分,而无需全部重新传输,可以提高传输效率。

作为技术方案的改进,s2中将新生成的binlog文件打包压缩并向从服务器发送包括如下步骤:

检测网络可用带宽;

将新生成的binlog文件打包压缩,之后,按照与检测到的网络可用带宽对应的延迟时间将打包压缩后的文件延迟向从服务器发送。

作为技术方案的改进,s2中对新生成的binlog文件打包压缩并向从服务器发送之前,还包括如下步骤:

检测网络可用带宽;

按照与检测到的网络可用带宽对应的传送线程数设置压缩文件的传送线程数。

作为技术方案的改进,s2中对新生成的binlog文件打包压缩并向从服务器发送之前,还包括如下步骤:

检测网络可用带宽;

按照与检测到的网络可用带宽对应的传送带宽设置传送压缩文件使用的带宽。

本发明还提供了一种mysql主从数据库的同步系统,其中,主数据库设置于主服务器上,从数据库设置于从服务器上,包括:监视单元、文件打包压缩单元、文件解包校验单元、闪回存储区和读取单元,其中,

监视单元,设置于主服务器上,用于监视主数据库是否有新的binlog文件产生;

文件打包压缩单元,设置于主服务器上,用于在有新的binlog文件产生时,对新生成的binlog文件打包压缩并向从服务器发送;

文件解包校验单元,设置于从服务器上,用于对文件打包压缩单元发送来的压缩binlog文件进行解包校验,得到完整数据;

闪回存储区,设置于从服务器上,用于保存解包后的完整数据;

读取单元,设置于从服务器上,用于从闪回存储区读取解包后的操作记录,并同步至从数据库。

该mysql主从数据库的同步系统,通过在主服务器上设置监视单元和文件打包压缩单元、在从服务器上设置文件解包校验单元和闪回存储区,可以实现对binlog文件的备份,当数据库本身的网络出现故障后,主从数据库无法通过数据库本身的延迟复制机制实现同步,此时,可以通过读取闪回存储区内备份的binlog文件,实现从数据库的闪回,该同步方法不会占用数据库资源,在系统层面直接对binlog文件进行复制,对数据库内部无影响,弥补当前mysql数据库架构的数据操作容错性弱的缺点。

作为技术方案的改进,该mysql主从数据库的同步系统还包括存储单元和网络可用带宽检测单元,其中,网络可用带宽检测单元用于检测网络可用带宽,存储单元中存储网络可用带宽与压缩文件个数的对照表,新生成的binlog文件按照对照表中与检测到的网络可用带宽对应的压缩文件个数进行打包压缩。

作为技术方案的改进,存储单元中还存储网络可用带宽与延迟时间的对照表,新生成的binlog文件打包压缩后,按照对照表中与检测到的网络可用带宽对应的延迟时间延迟向从服务器发送。

作为技术方案的改进,存储单元中还存储网络可用带宽与传送线程数的对照表,新生成的binlog文件打包压缩后使用对照表中与检测的网络可用带宽对应个数的传送线程传送至从服务器。

作为技术方案的改进,存储单元中还存储网络可用带宽与传送带宽的对照表,打包压缩后的文件使用对照表中与检测的网络可用带宽对应的传送带宽进行传送。

本发明的具体实施方式是按照递进的方式进行撰写的,着重强调各个实施方案的不同之处,其相似部分可以相互参见。

上面结合附图对本发明的实施方式做了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

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