数据同步方法、装置和系统的制作方法

文档序号:8942954阅读:208来源:国知局
数据同步方法、装置和系统的制作方法
【技术领域】
[0001]本公开涉及计算机技术领域,特别涉及一种数据同步方法、装置和系统。
【背景技术】
[0002]Redis数据库是一个开源、支持网络、基于内存的键值对存储数据库,支持多种数据类型和多种操作,具有强大的管理数据的功能。
[0003]在相关技术中,Redis数据库系统采用主从模式部署。Redis数据库系统包括主库和从库。其中,主库对外提供数据读写业务,而从库处于备用状态。当主库发生故障时,从库切换为主库,原来的主库在排除故障并重新启动后作为从库。
[0004]在主从切换的过程中,存在主库与从库中的数据同时丢失的风险,导致整个数据库系统的可用性较差。

【发明内容】

[0005]为了克服相关技术存在的问题,本公开实施例提供了一种数据同步方法、装置和系统。所述技术方案如下:
[0006]根据本公开实施例的第一方面,提供了一种数据同步方法,应用于第一数据库服务器中,所述方法包括:
[0007]获取对应于第一数据库的写操作命令;
[0008]将所述写操作命令写入第一日志文件中;
[0009]向第二数据库服务器发送包括所述写操作命令的日志信息,所述第二数据库服务器用于根据所述日志信息对第二数据库执行所述写操作命令。
[0010]可选地,所述向第二数据库服务器发送包括所述写操作命令的日志信息,包括:
[0011]获取所述第一日志文件中已同步的日志信息的偏移位置;
[0012]根据所述偏移位置确定所述第一日志文件中未同步的日志信息,所述未同步的日志信息包括所述写操作命令;
[0013]向所述第二数据库服务器发送所述未同步的日志信息。
[0014]可选地,所述方法还包括:
[0015]检测所述第一日志文件的剩余存储空间是否小于所述写操作命令的字节大小;
[0016]若所述第一日志文件的剩余存储空间小于所述写操作命令的字节大小,则获取所述第一日志文件中的第一目标日志信息;其中,所述第一目标日志信息的字节大小与所述第一日志文件的剩余存储空间之和大于或者等于所述写操作命令的字节大小,且所述第一目标日志信息是所述第一日志文件中最早记录的日志信息;
[0017]删除所述第一目标日志信息。
[0018]可选地,所述方法还包括:
[0019]检测在发出所述日志信息后的预定时段内是否接收到所述第二数据库服务器反馈的成功接收响应,所述成功接收响应用于指示所述第二数据库服务器已成功接收所述日志信息;
[0020]若未接收到所述成功接收响应,则向所述第二数据库服务器重发所述日志信息。
[0021]根据本公开实施例的第二方面,提供了一种数据同步方法,应用于第二数据库服务器中,所述方法包括:
[0022]接收第一数据库服务器发送的日志信息,所述日志信息包括对应于第一数据库的写操作命令;
[0023]将所述日志信息写入第二日志文件中;
[0024]根据所述日志信息对第二数据库执行所述写操作命令。
[0025]可选地,所述方法还包括:
[0026]检测所述第二日志文件的剩余存储空间是否小于所述日志信息的字节大小;
[0027]若所述第二日志文件的剩余存储空间小于所述日志信息的字节大小,则获取所述第二日志文件中的第二目标日志信息;其中,所述第二目标日志信息的字节大小与所述第二日志文件的剩余存储空间之和大于或者等于所述日志信息的字节大小,且所述第二目标日志信息是所述第二日志文件中最早记录的日志信息;
[0028]删除所述第二目标日志信息。
[0029]可选地,所述方法还包括:
[0030]向所述第一数据库服务器发送成功接收响应,所述成功接收响应用于指示已成功接收所述日志信息。
[0031]根据本公开实施例的第三方面,提供了一种数据同步装置,应用于第一数据库服务器中,所述装置包括:
[0032]命令获取模块,被配置为获取对应于第一数据库的写操作命令;
[0033]命令写入模块,被配置为将所述写操作命令写入第一日志文件中;
[0034]日志发送模块,被配置为向第二数据库服务器发送包括所述写操作命令的日志信息,所述第二数据库服务器用于根据所述日志信息对第二数据库执行所述写操作命令。
[0035]可选地,所述日志发送模块,包括:
[0036]获取子模块,被配置为获取所述第一日志文件中已同步的日志信息的偏移位置;
[0037]确定子模块,被配置为根据所述偏移位置确定所述第一日志文件中未同步的日志信息,所述未同步的日志信息包括所述写操作命令;
[0038]发送子模块,被配置为向所述第二数据库服务器发送所述未同步的日志信息。
[0039]可选地,所述装置还包括:
[0040]第一检测模块,被配置为检测所述第一日志文件的剩余存储空间是否小于所述写操作命令的字节大小;
[0041]第一获取模块,被配置为在所述第一日志文件的剩余存储空间小于所述写操作命令的字节大小的情况下,获取所述第一日志文件中的第一目标日志信息;其中,所述第一目标日志信息的字节大小与所述第一日志文件的剩余存储空间之和大于或者等于所述写操作命令的字节大小,且所述第一目标日志信息是所述第一日志文件中最早记录的日志信息;
[0042]第一删除模块,被配置为删除所述第一目标日志信息。
[0043]可选地,所述装置还包括:
[0044]响应检测模块,被配置为检测在发出所述日志信息后的预定时段内是否接收到所述第二数据库服务器反馈的成功接收响应,所述成功接收响应用于指示所述第二数据库服务器已成功接收所述日志信息;
[0045]日志重发模块,被配置为在未接收到所述成功接收响应的情况下,向所述第二数据库服务器重发所述日志信息。
[0046]根据本公开实施例的第四方面,提供了一种数据同步装置,应用于第二数据库服务器中,所述装置包括:
[0047]日志接收模块,被配置为接收第一数据库服务器发送的日志信息,所述日志信息包括对应于第一数据库的写操作命令;
[0048]日志写入模块,被配置为将所述日志信息写入第二日志文件中;
[0049]命令执行模块,被配置为根据所述日志信息对第二数据库执行所述写操作命令。
[0050]可选地,所述装置还包括:
[0051]第二检测模块,被配置为检测所述第二日志文件的剩余存储空间是否小于所述日志信息的字节大小;
[0052]第二获取模块,被配置为在所述第二日志文件的剩余存储空间小于所述日志信息的字节大小的情况下,获取所述第二日志文件中的第二目标日志信息;其中,所述第二目标日志信息的字节大小与所述第二日志文件的剩余存储空间之和大于或者等于所述日志信息的字节大小,且所述第二目标日志信息是所述第二日志文件中最早记录的日志信息;
[0053]第二删除模块,被配置为删除所述第二目标日志信息。
[0054]可选地,所述装置还包括:
[0055]响应发送模块,被配置为向所述第一数据库服务器发送成功接收响应,所述成功接收响应用于指示已成功接收所述日志信息。
[0056]根据本公开实施例的第五方面,提供了一种数据同步系统,所述系统包括:第一数据库、第二数据库、与所述第一数据库对应部署的第一数据同步装置以及与所述第二数据库对应部署的第二数据同步装置;
[0057]所述第一数据同步装置是如第三方面或者第三方面任一可选实施方式所述的数据同步装置;
[0058]所述第二数据同步装置是如第四方面或者第四方面任一可选实施方式所述的数据同步装置。
[0059]根据本公开实施例的第六方面,提供了一种数据同步装置,所述装置包括:
[0060]处理器;
[0061]用于存储所述处理器的可执行指令的存储器;
[0062]其中,所述处理器被配置为:
[0063]获取对应于第一数据库的写操作命令;
[0064]将所述写操作命令写入第一日志文件中;
[0065]向第二数据库服务器发送包括所述写操作命令的日志信息,所述第二数据库服务器用于根据所述日志信息对第二数据库执行所述写操作命令。
[0066]根据本公开实施例的第七方面,提供了一种数据同步装置,所述装置包括:
[0067]处理器;
[0068]用于存储所述处理器的可执行指令的存储器;
[0069]其中,所述处理器被配置为:
[0070]接收第一数据库服务器发送的日志信息,所述日志信息包括对应于第一数据库的写操作命令;
[0071]将所述日志信息写入第二日志文件中;
[0072]根据所述日志信息对第二数据库执行所述写操作命令。
[0073]本公开实施例提供的技术方案可以包括以下有益效果:
[0074
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1