[发明专利]数据同步方法、系统及计算机可读存储介质有效
申请号: | 201810394143.3 | 申请日: | 2018-04-27 |
公开(公告)号: | CN108804523B | 公开(公告)日: | 2021-07-16 |
发明(设计)人: | 刘栋;曹宝山;赵森;刘军;雷云飞 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 贾允;肖丁 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 同步 方法 系统 计算机 可读 存储 介质 | ||
本发明涉及互联网技术领域,尤其涉及一种数据同步方法、系统及计算机可读存储介质。在主从数据库同步的过程中,采用共享内存和磁盘相结合的方式维护主数据库修改形成的日志,当共享内存中的日志未发生堆积时,采用内存模式将日志从共享内存同步到从数据库中,当从数据库异常或压力较大导致共享内存中的日志发生堆积时,自动将日志转储到磁盘中,采用磁盘模式将日志从磁盘同步至从数据库中,当磁盘中日志同步完成且共享内存未产生堆积时,自动恢复到内存模式。本发明能够避免同步异常情况下数据丢失。
技术领域
本发明涉及通信技术领域,尤其涉及一种数据同步方法、系统及计算机可读存储介质。
背景技术
Redis是一个key-value存储系统。和Memcached(一个高性能的分布式内存对象缓存系统)类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set--有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集、并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与Memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
Redis通过以下方法实现主从同步:在堆上开辟环形buffer来存储历史的oplog数据,为每一个从库维护一个oplog发送队列;当环形buffer满了以后,丢弃环形buffer头部数据;当从库故障后重新连接上主库发现需要的历史oplog数据不存在,则开始全量重建从库;主从日志通过偏移量进行重定位同步。
Redis所采用的主从同步方案中,当从库或者网络发生故障持续时间较长,会造成环形buffer满,则会丢弃环形buffer中的历史数据,当故障恢复后,找不到需要的历史数据,因此从库需要全量重建,导致从库不可用时间过长,同时恢复对于主库造成较大影响。当主库节点进程crash的时候,系统的日志则会造成丢失,系统升级需要停止服务。因此,有必要提供一种高效性能的数据同步方案。
发明内容
针对现有技术的上述问题,本发明的目的在于提供一种数据同步方法、系统及计算机可读存储介质。
一方面,本发明提供一种数据同步方法,所述方法包括:
监测主数据库中的数据是否发生改变;
在主数据库中的数据发生改变时,将所述改变以日志形式写入共享内存中;
判断共享内存中的日志是否堆积;
如果共享内存中的日志未发生堆积,则将共享内存中的日志同步至从数据库;
如果共享内存中的日志发生堆积,则将共享内存中的日志转储到磁盘中,将磁盘中的日志同步至从数据库,当磁盘中的所有日志同步完成时,返回执行判断共享内存中的日志是否堆积的步骤。
另一方面,本发明提供一种数据同步系统,所述系统包括主设备和至少一个从设备,所述主设备包括主数据库、共享内存、磁盘和数据同步装置,所述从设备包括从数据库,所述数据同步装置包括:
监测单元,用于监测主数据库中的数据是否发生改变;
写入单元,用于在主数据库中的数据发生改变时,将所述改变以日志形式写入共享内存中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810394143.3/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置