一种MySQL数据库的数据同步方法、装置及电子设备制造方法及图纸

技术编号:19424941 阅读:22 留言:0更新日期:2018-11-14 10:33
本发明专利技术的实施例公开一种MySQL数据库的数据同步方法、装置及电子设备,涉及数据同步技术,能够有效提升数据同步效率。所述数据同步方法包括:监测到主机数据库与备机数据库之间的数据同步发生异常时,对主机数据库的数据操作的次数进行累计计数;监测到所述数据同步恢复正常时,如果所述累计计数的计数值超过预先设置的计数值阈值,将所述主机数据库的数据在主机本地进行导出操作;将所述导出操作所导出的数据进行导入操作,并生成所述导入操作的二进制日志,以使所述备机数据库根据所述二进制日志,将所述主机数据库的数据同步至备机数据库。本发明专利技术适用于基于MySQL数据库的数据同步。

【技术实现步骤摘要】
一种MySQL数据库的数据同步方法、装置及电子设备
本专利技术涉及数据同步技术,尤其涉及一种MySQL数据库的数据同步方法、装置及电子设备。
技术介绍
关系型数据查询语言(MySQL)由于具有体积小、成本低、查询速度快、稳定性高等特点,被广泛应用于各种中小型英特(Internet)网站、数据库存储及数据库服务。以数据库存储服务为例,通过MySQL搭建主主同步的高可用性(HA)方案,采用两个数据库互为主从的冗余备份模式,以及,利用数据库的复制(replication)机制,从而实现在线同步备份数据的功能,使得主从数据库中的数据保持同步。也就是说,在数据库运行过程中,如果对主机数据库执行写入、更新或删除数据的操作,主机数据库中的MySQL在本地的一数据库表中记录数据操作的二进制日志(binarylog),并通过配置的复制机制,将数据操作的二进制日志同步备份到备机数据库(又可称为从机数据库)中,备机数据库依据二进制日志进行相应的数据操作,从而实现对数据库的在线冗余备份功能,保障当一数据库(主机数据库或备机数据库)发生异常时,另一数据库(备机数据库或主机数据库)能够即时接管发生异常的数据库的服务,并保障两者数据的一致性。但该数据同步方法中,当备机由于网络异常或断电等情况,造成备机较长时间下线,而在该过程中,如果主机对数据进行频繁的增、删、改、查等数据操作,则会累积大量包括增、删、改、查等数据操作的二进制日志,在备机恢复正常工作后,恢复后的备机需要逐条同步主机累积的所有数据操作的二进制日志。备机同步主机累积的二进制日志后,是单条执行操作的,每条日志提交一次事务,在数据量较大时会有大量的输入输出(I/O)操作,使得同步操作耗时较长。
技术实现思路
有鉴于此,本专利技术实施例提供一种MySQL数据库的数据同步方法、装置及电子设备,能够有效提升数据同步效率。第一方面,本专利技术实施例提供一种MySQL数据库的数据同步方法,包括:监测主机数据库与备机数据库之间的数据同步是否正常;监测到所述数据同步发生异常时,对主机数据库的数据操作的次数进行累计计数;监测到所述数据同步恢复正常时,判断所述累计计数的计数值是否超过预先设置的计数值阈值;如果所述累计计数的计数值超过预先设置的计数值阈值,则将所述主机数据库的数据在主机本地进行导出操作;将所述导出操作所导出的数据进行导入操作以导入所述主机数据库,并生成所述导入操作的二进制日志,以使所述备机数据库根据所述二进制日志,将所述主机数据库的数据同步至备机数据库。结合第一方面,在第一方面的第一种实施方式中,所述监测到所述数据同步发生异常时,对主机数据库的数据操作的次数进行累计计数,包括:监测到所述数据同步发生异常时,将主机数据库中事件表的同步标识设为异常;对主机数据库的数据操作的次数进行累计计数。结合第一方面或第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述监测到所述数据同步恢复正常时,判断所述累计计数的计数值是否超过预先设置的计数值阈值,包括:监测到所述数据同步恢复正常时,调用数据记录查询接口查询并判断所述累计计数的计数值是否超过预先设置的计数值阈值。结合第一方面,在第一方面的第三种实施方式中,在对主机数据库的数据操作的次数进行累计计数之后,监测到所述数据同步恢复正常之前,所述方法还包括:判断所述累计计数的计数值是否超过所述预先设置的计数值阈值;如果所述累计计数的计数值未超过所述预先设置的计数值阈值,则存储主机数据库每一次数据操作的二进制日志,如果所述累计计数的计数值超过所述预先设置的计数值阈值,则不再存储主机数据库的数据操作的二进制日志。结合第一方面,在第一方面的第四种实施方式中,所述如果所述累计计数的计数值超过预先设置的计数值阈值,则将所述主机数据库的数据在主机本地进行导出操作,包括:如果所述累计计数的计数值超过预先设置的计数值阈值,调用数据转储导出接口将所述主机数据库的数据在主机本地进行导出操作。结合第一方面,在第一方面的第五种实施方式中,在监测到所述数据同步恢复正常之后,如果所述累计计数的计数值未超过预先设置的计数值阈值,所述方法还包括:通过所述MySQL数据库的复制机制,将所述主机数据库的数据同步至备机数据库。结合第一方面,在第一方面的第六种实施方式中,在将所述主机数据库的数据在主机本地进行导出操作时,所述方法还包括:将所述导出操作过程封装为事务;和/或在将所述导出操作所导出的数据进行导入操作以导入所述主机数据库时,所述方法还包括:将所述导入操作过程封装为事务。第二方面,本专利技术实施例提供一种MySQL数据库的数据同步装置,包括:监测模块,用于监测主机数据库与备机数据库之间的数据同步是否正常;计数模块,用于在所述监测模块监测到所述数据同步发生异常时,对主机数据库的数据操作的次数进行累计计数;判断模块,用于在所述监测模块监测到所述数据同步恢复正常时,判断所述累计计数的计数值是否超过预先设置的计数值阈值;导出操作模块,用于如果所述累计计数的计数值超过预先设置的计数值阈值,则将所述主机数据库的数据在主机本地进行导出操作;导入操作模块,用于将所述导出操作所导出的数据进行导入操作以导入所述主机数据库,并生成所述导入操作的二进制日志,以使所述备机数据库根据所述二进制日志,将所述主机数据库的数据同步至备机数据库。结合第二方面,在第二方面的第一种实施方式中,所述监测模块,包括:监测子模块,用于监测主机数据库与备机数据库之间的数据同步是否正常;同步标识设置子模块,用于在所述监测子模块监测到所述数据同步发生异常时,将主机数据库中事件表的同步标识设为异常;其中,所述计数模块,用于在所述监测子模块监测到所述数据同步发生异常时,对主机数据库的数据操作的次数进行累计计数。结合第二方面或第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述判断模块,,具体用于在所述监测模块监测到所述数据同步恢复正常时,调用数据记录查询接口查询并判断所述累计计数的计数值是否超过预先设置的计数值阈值。结合第二方面,在第二方面的第三种实施方式中,所述的数据同步装置,还包括:日志存储模块,用于如果所述累计计数的计数值未超过所述预先设置的计数值阈值,则存储主机数据库每一次数据操作的二进制日志,如果所述累计计数的计数值超过所述预先设置的计数值阈值,则不再存储主机数据库的数据操作的二进制日志。结合第二方面,在第二方面的第四种实施方式中,所述导出操作模块,具体用于如果所述累计计数的计数值超过预先设置的计数值阈值,调用数据转储导出接口将所述主机数据库的数据在主机本地进行导出操作。结合第二方面,在第二方面的第五种实施方式中,所述的数据同步装置,还包括:复制模块,用于在所述监测模块监测到所述数据同步恢复正常之后,如果所述累计计数的计数值未超过预先设置的计数值阈值,则通过所述MySQL数据库的复制机制,将所述主机数据库的数据同步至备机数据库。结合第二方面,在第二方面的第六种实施方式中,所述的数据同步装置,还包括:事务封装模块,用于在所述导出操作模块将所述主机数据库的数据在主机本地进行导出操作时,将所述导出操作过程封装为事务;和/或,在所述导入操作模块将所述导出操作所导出的数据进行导入操作以导入所述主机数据库时,将所述导入操作的过程本文档来自技高网
...

【技术保护点】
1.一种MySQL数据库的数据同步方法,其特征在于,包括:监测主机数据库与备机数据库之间的数据同步是否正常;监测到所述数据同步发生异常时,对主机数据库的数据操作的次数进行累计计数;监测到所述数据同步恢复正常时,判断所述累计计数的计数值是否超过预先设置的计数值阈值;如果所述累计计数的计数值超过预先设置的计数值阈值,则将所述主机数据库的数据在主机本地进行导出操作;将所述导出操作所导出的数据进行导入操作以导入所述主机数据库,并生成所述导入操作的二进制日志,以使所述备机数据库根据所述二进制日志,将所述主机数据库的数据同步至备机数据库。

【技术特征摘要】
1.一种MySQL数据库的数据同步方法,其特征在于,包括:监测主机数据库与备机数据库之间的数据同步是否正常;监测到所述数据同步发生异常时,对主机数据库的数据操作的次数进行累计计数;监测到所述数据同步恢复正常时,判断所述累计计数的计数值是否超过预先设置的计数值阈值;如果所述累计计数的计数值超过预先设置的计数值阈值,则将所述主机数据库的数据在主机本地进行导出操作;将所述导出操作所导出的数据进行导入操作以导入所述主机数据库,并生成所述导入操作的二进制日志,以使所述备机数据库根据所述二进制日志,将所述主机数据库的数据同步至备机数据库。2.根据权利要求1所述的数据同步方法,其特征在于,所述监测到所述数据同步发生异常时,对主机数据库的数据操作的次数进行累计计数,包括:监测到所述数据同步发生异常时,将主机数据库中事件表的同步标识设为异常;对主机数据库的数据操作的次数进行累计计数。3.根据权利要求1或2所述的数据同步方法,其特征在于,所述监测到所述数据同步恢复正常时,判断所述累计计数的计数值是否超过预先设置的计数值阈值,包括:监测到所述数据同步恢复正常时,调用数据记录查询接口查询并判断所述累计计数的计数值是否超过预先设置的计数值阈值。4.根据权利要求1所述的数据同步方法,其特征在于,在对主机数据库的数据操作的次数进行累计计数之后,监测到所述数据同步恢复正常之前,所述方法还包括:判断所述累计计数的计数值是否超过所述预先设置的计数值阈值;如果所述累计计数的计数值未超过所述预先设置的计数值阈值,则存储主机数据库每一次数据操作的二进制日志,如果所述累计计数的计数值超过所述预先设置的计数值阈值,则不再存储主机数据库的数据操作的二进制日志。5.根据权利要求1所述的数据同步方法,其特征在于,所述如果所述累计计数的计数值超过预先设置的计数值阈值,则将所述主机数据库的数据在主机本地进行导出操作,包括:如果所述累计计数的计数值超过预先设置的计数值阈值,调用数据转储导出接口将所述主机数据库的数据在主机本地进行导出操作。6.根据权利要求1所述的数据同步方法,其特征在于,在监测到所述数据同步恢复正常之后,如果所述累计计数的计数值未超过预先设置的计数值阈值,所述方法还包括:通过所述MySQL数据库的复制机制,将所述主机数据库的数据同步至备机数据库。7.根据权利要求1所述的数据同步方法,其特征在于,在将所述主机数据库的数据在主机本地进行导出操作时,所述方法还包括:将所述导出操作过程封装为事务;和/或在将所述导出操作所导出的数据进行导入操作以导入所述主机数据库时,所述方法还包括:将所述导入操作过程封装为事务。8.一种MySQL数据库的数据同步装置,其特征在于,包括:监测模块,用于监测主机数据库与备机数据库之间的数据同步是否正常;计数模块,用于在所述监测模块监测到所述数据同步发生异常时,对主机数据库的数...

【专利技术属性】
技术研发人员:朱建成胡文飞
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:浙江,33

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

1