[发明专利]一种数据库同步方法及装置在审
申请号: | 201410696885.3 | 申请日: | 2014-11-26 |
公开(公告)号: | CN104346479A | 公开(公告)日: | 2015-02-11 |
发明(设计)人: | 陈宗志;王超;陈磊;陈营;李明昊 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 许志勇 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 同步 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据库同步方法及装置。
背景技术
在分布式系统中,为了增强系统的可靠性,经常使用主从模式来部署在系统中使用的数据库。目前在分布式系统中所使用的数据库可以包含多个副本,通常有一个主数据库和至少一个从数据库,当主数据库正常工作时,会将自身的数据同步给各从数据库。
在现有技术中,当主数据库(以下称为第一数据库)无法正常工作时,如第一数据库的相关进程崩溃时,或者第一数据库所在的主机宕机时,则会有一个优先级最高的从数据库(以下称为第二数据库)切换为新的主数据库,而第一数据库在恢复正常工作后,会切换为一个新的从数据库,此后由第二数据库同步数据给第一数据库和其它各从数据库。
但是,由于第一数据库在无法正常工作之前,可能有部分最近的数据尚未同步给各从数据库(包括第二数据库),而此后,是由第二数据库同步数据给第一数据库和其它各从数据库,因此,第二数据库中缺少了第一数据库尚未同步过来的这部分数据,从而,可能导致第二数据库中的数据状态不正确。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据库同步方法及装置,在原来的主数据库切换成为从数据库后,确保新的主数据库中数据状态正确。
根据本发明的第一个方面,提出一种数据库同步方法,所述方法应用于至少包含第一数据库和第二数据库的数据系统,所述第一数据库由主数据库切换为从数据库,所述第二数据库由从数据库切换为主数据库,所述方法包括:
在所述第一数据库切换为从数据库后,提取所述第一数据库的第一数据库日志和所述第二数据库的第二数据库日志;
根据所述第一数据库日志和所述第二数据库日志,更新所述第二数据库日志;
根据更新后的第二数据库日志中包含的各操作记录,对所述第二数据库中的数据进行同步操作。
可选地,所述日志至少包括二进制日志binlog。
可选地,根据所述第一数据库日志和所述第二数据库日志,更新所述第二数据库日志,包括:
查找包含在所述第一数据库日志中,且不包含在所述第二数据库日志中的操作记录;
将查找到的各操作记录并入所述第二数据库日志中,并将并入后的第二数据库日志作为更新后的第二数据库日志。
可选地,查找包含在所述第一数据库日志中,且不包含在所述第二数据库日志中的操作记录,包括:
在所述第一数据库日志中,确定生成时间距当前时刻最近、且同时包含在所述第一数据库日志和所述第二数据库日志中的操作记录;
将确定出的操作记录的生成时间作为分界时间戳;
在所述第一数据库日志中,查找生成时间晚于所述分界时间戳的操作记录。
可选地,将查找到的各操作记录并入所述第二数据库日志中,包括:
针对查找到的每条操作记录,确定该操作记录对应的标识,作为待定标识;
在所述第二数据库日志中,确定生成时间晚于该操作记录的生成时间的各操作记录对应的标识,作为对比标识;
当各对比标识中不存在所述待定标识时,根据该操作记录的生成时间,将该操作记录插入所述第二数据库日志中。
可选地,当各对比标识中存在所述待定标识时,忽略所述第一数据库日志中所述待定标识对应的操作记录。
可选地,根据更新后的第二数据库日志中包含的各操作记录,对所述第二数据库中的数据进行同步操作,包括:
针对并入所述第二数据库日志中的每条操作记录,提取该操作记录中包含的操作指令,并在所述第二数据库上执行该操作指令。
根据本发明的第二个方面,提出一种数据库同步装置,所述装置应用于至少包含第一数据库和第二数据库的数据系统,所述第一数据库由主数据库切换为从数据库,所述第二数据库由从数据库切换为主数据库,所述装置包括:
提取模块,用于在所述第一数据库切换为从数据库后,提取所述第一数据库的第一数据库日志和所述第二数据库的第二数据库日志;
更新模块,用于根据所述第一数据库日志和所述第二数据库日志,更新所述第二数据库日志;
同步模块,用于根据更新后的第二数据库日志中包含的各操作记录,对所述第二数据库中的数据进行同步操作。
可选地,所述日志至少包括二进制日志binlog。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410696885.3/2.html,转载请声明来源钻瓜专利网。