同步数据的方法、装置、数据传输组件及系统的制作方法_5

文档序号:8380803阅读:来源:国知局
其中,所述从主数据库获取待同步数据的步 骤进一步包括:
[0144] 以指定的时间周期获取所述主数据库的日志文件;以及
[0145] 解析所述主数据库的日志文件,得到所述待同步数据。
[0146] A14、根据A13所述的方法,其中,所述解析所述主数据库的日志文件,得到所述待 同步数据的步骤进一步包括:
[0147] 若初次解析所述主数据库的日志文件,则从所述主数据库的日志文件的初始位置 开始解析,得到所述待同步数据;
[0148] 若非初次解析所述主数据库的日志文件,则获取上一次解析所述主数据库的日志 文件的解析位置,并从所述解析位置开始解析,得到所述待同步数据。
[0149] A15、根据A1-A14任一项所述的方法,其中,所述待同步数据的格式为JSON格式。
[0150] A16、根据A1-A15任一项所述的方法,其中,所述主数据库的数量为至少一个。
[0151] A17、根据A1-A16任一项所述的方法,其中,所述主数据库或所述从数据库为 MySQL数据库。
[0152] B18、一种同步数据的装置,应用于具有主从结构的数据库,包括:
[0153] 获取器,适于从主数据库获取待同步数据;
[0154] 生成器,适于根据所述待同步数据生成多个同步任务;
[0155] 分配器,适于调用至少两个并发的线程,根据预设规则分配所述多个同步任务至 所述至少两个并发的线程中;以及
[0156] 发送器,适于利用所述至少两个并发的线程,发送所述多个同步任务至从数据库, 以供所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步。
[0157] B19、根据B18所述的装置,其中,所述同步数据的装置配置于所述主数据库与所 述待同步的从数据库之间。
[0158] B20、根据B18或B19所述的装置,其中,所述分配器还适于:
[0159] 根据所述多个同步任务中的对象标识分配所述多个同步任务,将具备相同对象标 识的同步任务分配至同一个线程中;或者
[0160] 根据所述多个同步任务中的数据表标识分配所述多个同步任务,将具备相同数据 表标识的同步任务分配至同一个线程中。
[0161] B21、根据B20所述的装置,其中,所述分配器还适于:
[0162] 将具备相同对象标识的同步任务按照时序或排序顺序分配至同一个线程中。
[0163] B22、根据B20所述的装置,其中,所述分配器还适于:
[0164] 将具备相同数据表标识的同步任务按照时序或排序顺序分配至同一个线程中。
[0165] B23、根据B18所述的装置,其中,所述分配器还适于:
[0166] 根据所述多个同步任务的数量,调用相应数量的并发的线程;以及
[0167] 将所述多个同步任务一对一的分配至所述相应数量的并发的线程中。
[0168] B24、根据B18-B23任一项所述的装置,其中,若所述发送器在利用所述至少两个 并发的线程,发送所述多个同步任务至所述从数据库的过程中,所述获取器从所述主数据 库获取到新的待同步数据,则所述生成器还适于:
[0169] 根据所述新的待同步数据生成新的多个同步任务。
[0170] B25、根据B24所述的装置,其中,所述生成器根据所述新的待同步数据生成新的 多个同步任务之后,所述分配器还适于:
[0171] 根据所述预设规则分配所述新的多个同步任务至所述至少两个并发的线程中;或 者
[0172] 调用新的线程,并根据所述预设规则分配所述新的多个同步任务至所述新的线程 中,以利用所述新的线程发送所述新的多个同步任务至所述从数据库。
[0173] B26、根据B18-B25任一项所述的装置,其中,在所述从数据库根据所述多个同步 任务实现与所述主数据库间的数据同步的过程中,所述从数据库记录自身同步的执行位置 信息,以得到同步日志。
[0174] B27、根据B18-B26任一项所述的装置,还包括监控器以及执行器,其中,在所述从 数据库根据所述多个同步任务实现与所述主数据库间的数据同步的过程中:
[0175] 所述监控器,适于监控所述从数据库的数据同步的状态;
[0176] 所述执行器,适于若所述监控器监控到所述从数据库的数据同步发生中断,则获 取所述从数据库的同步日志,并读取所述从数据库的同步日志中所述从数据库同步的执行 位置信息;以及根据所述从数据库同步的执行位置信息恢复数据同步。
[0177] B28、根据B27所述的装置,其中,所述执行器还适于:
[0178] 从所述从数据库获取所述从数据库的同步日志。
[0179] B29、根据B27所述的装置,其中,所述从数据库的同步日志被上传至云服务器,所 述执行器还适于:
[0180] 从所述云服务器获取所述从数据库的同步日志。
[0181] B30、根据B18-B29任一项所述的装置,其中,所述获取器还适于:
[0182] 以指定的时间周期获取所述主数据库的日志文件;以及
[0183] 解析所述主数据库的日志文件,得到所述待同步数据。
[0184] B31、根据B30所述的装置,其中,所述获取器还适于:
[0185] 若初次解析所述主数据库的日志文件,则从所述主数据库的日志文件的初始位置 开始解析,得到所述待同步数据;
[0186] 若非初次解析所述主数据库的日志文件,则获取上一次解析所述主数据库的日志 文件的解析位置,并从所述解析位置开始解析,得到所述待同步数据。
[0187] C32、一种同步数据的数据传输组件,包括:B18-B31任一项所述的同步数据的装 置。
[0188] D33、一种同步数据的系统,包括主数据库、从数据库以及C32所述的同步数据的 数据传输组件。
【主权项】
1. 一种同步数据的方法,应用于具有主从结构的数据库,包括: 从主数据库获取待同步数据,并根据所述待同步数据生成多个同步任务; 调用至少两个并发的线程,根据预设规则分配所述多个同步任务至所述至少两个并发 的线程中;以及 利用所述至少两个并发的线程,发送所述多个同步任务至从数据库,以供所述从数据 库根据所述多个同步任务实现与所述主数据库间的数据同步。
2. 根据权利要求1所述的方法,其中,所述同步数据的方法由所述主数据库与所述待 同步的从数据库间设置的数据传输组件执行。
3. 根据权利要求1或2所述的方法,其中,所述根据预设规则分配所述多个同步任务至 所述至少两个并发的线程中的步骤进一步包括: 根据所述多个同步任务中的对象标识分配所述多个同步任务,将具备相同对象标识的 同步任务分配至同一个线程中;或者 根据所述多个同步任务中的数据表标识分配所述多个同步任务,将具备相同数据表标 识的同步任务分配至同一个线程中。
4. 根据权利要求3所述的方法,其中,所述将具备相同对象标识的同步任务分配至同 一个线程中的步骤进一步包括: 将具备相同对象标识的同步任务按照时序或排序顺序分配至同一个线程中。
5. 根据权利要求3所述的方法,其中,所述将具备相同数据表标识的同步任务分配至 同一个线程中的步骤进一步包括: 将具备相同数据表标识的同步任务按照时序或排序顺序分配至同一个线程中。
6. 根据权利要求1或2所述的方法,其中,所述调用至少两个并发的线程,根据预设规 则分配所述多个同步任务至所述至少两个并发的线程中的步骤进一步包括: 根据所述多个同步任务的数量,调用相应数量的并发的线程;以及 将所述多个同步任务一对一的分配至所述相应数量的并发的线程中。
7. 根据权利要求1-6任一项所述的方法,其中,若在利用所述至少两个并发的线程,发 送所述多个同步任务至所述从数据库的过程中,从所述主数据库获取到新的待同步数据, 则根据所述新的待同步数据生成新的多个同步任务。
8. -种同步数据的装置,应用于具有主从结构的数据库,包括: 获取器,适于从主数据库获取待同步数据; 生成器,适于根据所述待同步数据生成多个同步任务; 分配器,适于调用至少两个并发的线程,根据预设规则分配所述多个同步任务至所述 至少两个并发的线程中;以及 发送器,适于利用所述至少两个并发的线程,发送所述多个同步任务至从数据库,以供 所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步。
9. 一种同步数据的数据传输组件,包括:权利要求8所述的同步数据的装置。
10. -种同步数据的系统,包括主数据库、从数据库以及权利要求9所述的同步数据的 数据传输组件。
【专利摘要】本发明提供了一种同步数据的方法、装置、数据传输组件及系统,该同步数据的方法,应用于具有主从结构的数据库,包括:从主数据库获取待同步数据,并根据所述待同步数据生成多个同步任务;调用至少两个并发的线程,根据预设规则分配所述多个同步任务至所述至少两个并发的线程中;以及利用所述至少两个并发的线程,发送所述多个同步任务至所述从数据库,以供所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步。本发明实施例提供的技术方案解决了主从数据库单线程同步延时的问题,能够实现实时同步,进而满足后续提供数据服务的需求。
【IPC分类】G06F17-30, G06F9-50
【公开号】CN104699541
【申请号】CN201510146300
【发明人】刘臻
【申请人】北京奇虎科技有限公司, 奇智软件(北京)有限公司
【公开日】2015年6月10日
【申请日】2015年3月30日
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1