[发明专利]一种数据库同步方法和数据库系统有效
申请号: | 201310507349.X | 申请日: | 2013-10-24 |
公开(公告)号: | CN103500229B | 公开(公告)日: | 2017-04-19 |
发明(设计)人: | 王超;陈磊;陈营;陈宗志 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京中强智尚知识产权代理有限公司11448 | 代理人: | 姜精斌 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 同步 方法 系统 | ||
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据库同步方法和数据库系统。
背景技术
在数据库的应用中,对于访问量巨大的系统一般采用逐主Master-从Slave模式,通过这种方法,可以降低数据库的压力。二进制日志Binlog在数据库系统常被用于记录系统当前已经执行过的DDL和DML(除了数据查询语句)语句等内容。这些语句以事件的形式实时地备份到binlog中,反映了数据库中数据的更改。Binlog在数据库系统中主要有两个作用:binlog作为数据库系统数据的实时备份,当数据库系统发生异常时,可以被用于数据恢复;binlog还用于数据库系统集群的主从数据复制,主节点把它的binlog传递给从节点来达到主从数据一致的目的。
目前,在大多数的数据库系统的同步采用每个节点对应一个binlog文件来实现。例如,master节点上有一个binlog,slave节点上也有一个binlog。Master节点将binlog内容发送到slave端,slave端接收数据后将binlog内容解析,先执行数据存入节点上的数据库,然后将操作日志记录到binlog中。并且,在数据库同步的过程中Slave节点通常采用单线程同步binlog,master节点发送速度远快于slave节点处理速度慢,会产生slave节点数据滞后的情况,且单线程不能充分利用系统资源,常出现slave节点数据严重滞后时,系统资源占用率却较低的情况。当slave节点数据发生滞后的情况下,如果master节点出现异常,则master节点未发送到slave节点的数据将丢失,造成数据同步的失败。
发明内容
有鉴于此,本发明要解决的一个技术问题是提供一种数据库同步方法,设置数据库分区并设置对应的二进制日志文件,进行主从数据库的同步。
一种数据库同步方法,其包括:将主数据库划分为多个主数据分区,将从数据库划分为多个从数据分区;为每个主数据分区设置一主二进制日志文件并为每个从数据分区设置一从二进制日志文件;当所述主数据分区发生数据更改时,将此数据更改记录到与此主数据分区对应的主二进制日志文件中,并将所述主数据分区的数据更改记录发送到所述从数据库;当接收到所述主数据分区的数据更改记录时,将此数据更改记录到从二进制日志文件中,并在与此从二进制日志文件对应的所述从数据库的从数据分区中执行数据更改。
根据本发明的方法的一个实施例,进一步的,所述主数据库与所述从数据库的分区划分相同,并且,所述多个主数据分区与所述多个从数据分区一一对应。
根据本发明的方法的一个实施例,进一步的,对于每个主数据分区启动至少一个第一工作线程;所述第一工作线程执行与其对应的主数据分区的数据更改,并将数据更改记录到与此主数据分区对应的主二进制日志文件中。
根据本发明的方法的一个实施例,进一步的,对于每个主二进制日志文件启动至少一个发送线程;所述发送线程监控与其对应的主二进制日志文件;当此主二进制日志文件的大小发生变化时,所述发送线程读取此主二进制日志文件中新插入的数据更改记录,并将所述新插入的数据更改记录缓存在缓存队列中;当缓存队列的长度到达设定的阈值时,所述发送线程将所述缓存队列中的数据更改记录发送到所述从数据库。
根据本发明的方法的一个实施例,进一步的,对于每个从数据分区启动至少一个接收线程和至少一个第二工作线程;
当所述接收线程接收到与其对应的从数据分区的数据更改记录时,将此数据更改记录传递到所述第二工作线程;所述第二工作线程将此数据更改记录到与所述第二工作线程对应的从数据分区的从二进制日志文件中,并执行与所述第二工作线程对应的从数据分区的数据更改。
根据本发明的方法的一个实施例,进一步的,所述发送线程和所述接收线程采用同步或异步方式传递所述数据更改记录;所述数据更改记录包括执行DROP、CREATE、ALTER、GRANT、REVOKE、TRUNCATE、UPDATE、INSERT、DELETE数据库命令的记录。
本发明要解决的另一个技术问题是提供一种数据库同步系统,能够设置与数据库分区对应的二进制日志文件,进行主从数据库的同步。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310507349.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:钢芯铸胶螺旋托辊
- 下一篇:刮板输送机电缆保护装置