数据同步方法、装置和系统制造方法及图纸

技术编号:12544236 阅读:58 留言:0更新日期:2015-12-19 12:51
本公开是关于一种数据同步方法、装置和系统,属于计算机技术领域。所述方法包括:第一数据库服务器获取对应于第一数据库的写操作命令;将该写操作命令写入第一日志文件中;向第二数据库服务器发送包括该写操作命令的日志信息,第二数据库服务器用于根据该日志信息对第二数据库执行上述写操作命令。本公开解决了相关技术因存在主库与从库中的数据同时丢失的风险,而导致整个数据库系统的可用性较差的问题;避免了两个数据库中的数据完全丢失的风险,保证了整个数据库系统的高可用性。

【技术实现步骤摘要】

本公开涉及计算机
,特别涉及一种数据同步方法、装置和系统
技术介绍
Redis数据库是一个开源、支持网络、基于内存的键值对存储数据库,支持多种数据类型和多种操作,具有强大的管理数据的功能。在相关技术中,Redis数据库系统采用主从模式部署。Redis数据库系统包括主库和从库。其中,主库对外提供数据读写业务,而从库处于备用状态。当主库发生故障时,从库切换为主库,原来的主库在排除故障并重新启动后作为从库。在主从切换的过程中,存在主库与从库中的数据同时丢失的风险,导致整个数据库系统的可用性较差。
技术实现思路
为了克服相关技术存在的问题,本公开实施例提供了一种数据同步方法、装置和系统。所述技术方案如下:根据本公开实施例的第一方面,提供了一种数据同步方法,应用于第一数据库服务器中,所述方法包括:获取对应于第一数据库的写操作命令;将所述写操作命令写入第一日志文件中;向第二数据库服务器发送包括所述写操作命令的日志信息,所述第二数据库服务器用于根据所述日志信息对第二数据库执行所述写操作命令。可选地,所述向第二数据库服务器发送包括所述写操作命令的日志信息,包括:获取所述第一日志文件中已同步的日志信息的偏移位置;根据所述偏移位置确定所述第一日志文件中未同步的日志信息,所述未同步的日志信息包括所述写操作命令;向所述第二数据库服务器发送所述未同步的日志信息。可选地,所述方法还包括:检测所述第一日志文件的剩余存储空间是否小于所述写操作命令的字节大小;若所述第一日志文件的剩余存储空间小于所述写操作命令的字节大小,则获取所述第一日志文件中的第一目标日志信息;其中,所述第一目标日志信息的字节大小与所述第一日志文件的剩余存储空间之和大于或者等于所述写操作命令的字节大小,且所述第一目标日志信息是所述第一日志文件中最早记录的日志信息;删除所述第一目标日志信息。可选地,所述方法还包括:检测在发出所述日志信息后的预定时段内是否接收到所述第二数据库服务器反馈的成功接收响应,所述成功接收响应用于指示所述第二数据库服务器已成功接收所述日志信息;若未接收到所述成功接收响应,则向所述第二数据库服务器重发所述日志信息。根据本公开实施例的第二方面,提供了一种数据同步方法,应用于第二数据库服务器中,所述方法包括:接收第一数据库服务器发送的日志信息,所述日志信息包括对应于第一数据库的写操作命令;将所述日志信息写入第二日志文件中;根据所述日志信息对第二数据库执行所述写操作命令。可选地,所述方法还包括:检测所述第二日志文件的剩余存储空间是否小于所述日志信息的字节大小;若所述第二日志文件的剩余存储空间小于所述日志信息的字节大小,则获取所述第二日志文件中的第二目标日志信息;其中,所述第二目标日志信息的字节大小与所述第二日志文件的剩余存储空间之和大于或者等于所述日志信息的字节大小,且所述第二目标日志信息是所述第二日志文件中最早记录的日志信息;删除所述第二目标日志信息。可选地,所述方法还包括:向所述第一数据库服务器发送成功接收响应,所述成功接收响应用于指示已成功接收所述日志信息。根据本公开实施例的第三方面,提供了一种数据同步装置,应用于第一数据库服务器中,所述装置包括:命令获取模块,被配置为获取对应于第一数据库的写操作命令;命令写入模块,被配置为将所述写操作命令写入第一日志文件中;日志发送模块,被配置为向第二数据库服务器发送包括所述写操作命令的日志信息,所述第二数据库服务器用于根据所述日志信息对第二数据库执行所述写操作命令。可选地,所述日志发送模块,包括:获取子模块,被配置为获取所述第一日志文件中已同步的日志信息的偏移位置;确定子模块,被配置为根据所述偏移位置确定所述第一日志文件中未同步的日志信息,所述未同步的日志信息包括所述写操作命令;发送子模块,被配置为向所述第二数据库服务器发送所述未同步的日志信息。可选地,所述装置还包括:第一检测模块,被配置为检测所述第一日志文件的剩余存储空间是否小于所述写操作命令的字节大小;第一获取模块,被配置为在所述第一日志文件的剩余存储空间小于所述写操作命令的字节大小的情况下,获取所述第一日志文件中的第一目标日志信息;其中,所述第一目标日志信息的字节大小与所述第一日志文件的剩余存储空间之和大于或者等于所述写操作命令的字节大小,且所述第一目标日志信息是所述第一日志文件中最早记录的日志信息;第一删除模块,被配置为删除所述第一目标日志信息。可选地,所述装置还包括:响应检测模块,被配置为检测在发出所述日志信息后的预定时段内是否接收到所述第二数据库服务器反馈的成功接收响应,所述成功接收响应用于指示所述第二数据库服务器已成功接收所述日志信息;日志重发模块,被配置为在未接收到所述成功接收响应的情况下,向所述第二数据库服务器重发所述日志信息。根据本公开实施例的第四方面,提供了一种数据同步装置,应用于第二数据库服务器中,所述装置包括:日志接收模块,被配置为接收第一数据库服务器发送的日志信息,所述日志信息包括对应于第一数据库的写操作命令;日志写入模块,被配置为将所述日志信息写入第二日志文件中;命令执行模块,被配置为根据所述日志信息对第二数据库执行所述写操作命令。可选地,所述装置还包括:第二检测模块,被配置为检测所述第二日志文件的剩余存储空间是否小于所述日志信息的字节大小;第二获取模块,被配置为在所述第二日志文件的剩余存储空间小于所述日志信息的字节大小的情况下,获取所述第二日志文件中的第二目标日志信息;其中,所述第二目标日志信息的字节大小与所述第二日志文件的剩余存储空间之和大于或者等于所述日志信息的字节大小,且所述第二目标日志信息是所述第二日志文件中最早记录的日志信息;第二删除模块,被配置为删除所述第二目标日志信息。可选地,所述装置还包括:响应发送模块,被配置为向所述第一数据库服务器发送成功接收响应,所述成功接收响应用于指示已成功接收所述日志信息。根据本公开实施例的第五方面,提供了一种数据同步系统,所述系统包括:第一数据库、第二数据库、与所述第一数据库对应部署的第一数据同步装置以及与所述第二数据库对应部署的第二数据同步装置;所述第一数据同步装置是如第三方面或者第三方面任一可选实施方式所述的数据同步装置;所述第二数据同步装置是如第四方面或者第四方面任一可选实施方式所述的数据同步装置。根据本公开实施例的第六方面,提供了一种数据同步装置,所述装置包括:处理器;用于存储所述处理器的可执行指令的存储器;其中,所述处理器被配置为:获取对应于第一数据库的写操作命令;将所述写操作命令写入第一日志文件中;向第二数据库服务器发送包括所述写操作命令的日志信息,所述第二数据库服务器用于根据所述日志信息对第二数据库执行所述写操作命令。根据本公开实施例的第七方面,提供了一种数据同步装置,所述装置包括:处理器;用于存储所述处理器的可执行指令的存储器;其中,所述处理器被配置为:接收第一数据库服务器发送的日志信息,所述日志信息包括对应于第一数据库的写操作命令;将所述日志信息写入第二日志文件中;根据所述日志信息对第二数据库执行所述写操作命令。本公开实施例提供的技术方案可以包括以下有益效果:[0074当前第1页1 2 3 4 5&nbs本文档来自技高网...

【技术保护点】
一种数据同步方法,其特征在于,应用于第一数据库服务器中,所述方法包括:获取对应于第一数据库的写操作命令;将所述写操作命令写入第一日志文件中;向第二数据库服务器发送包括所述写操作命令的日志信息,所述第二数据库服务器用于根据所述日志信息对第二数据库执行所述写操作命令。

【技术特征摘要】

【专利技术属性】
技术研发人员:谭国斌窦锦帅沈建荣张旭华
申请(专利权)人:小米科技有限责任公司
类型:发明
国别省市:北京;11

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

1