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

文档序号:8942954阅读:来源:国知局
和第一数据同步装置502可部署于第一数据库服务器500中,第二数据库601和第二数据同步装置602可部署于第二数据库服务器600中。
[0155]第一数据同步装置502可以包括:命令获取模块510、命令写入模块520和日志发送模块530。
[0156]命令获取模块510,被配置为获取对应于第一数据库501的写操作命令。
[0157]命令写入模块520,被配置为将所述命令获取模块510获取的所述写操作命令写入第一日志文件中。
[0158]日志发送模块530,被配置为向第二数据库服务器600发送包括所述命令写入模块520写入至所述第一日志文件中的所述写操作命令的日志信息,所述第二数据库服务器600用于根据所述日志信息对第二数据库601执行所述写操作命令。
[0159]可选地,所述日志发送模块530,包括:获取子模块530a、确定子模块530b和发送子模块530c。
[0160]获取子模块530a,被配置为获取所述第一日志文件中已同步的日志信息的偏移位置。
[0161]确定子模块530b,被配置为根据所述读取子模块530a读取到的所述偏移位置确定所述第一日志文件中未同步的日志信息,所述未同步的日志信息包括所述写操作命令。
[0162]发送子模块530c,被配置为向所述第二数据库服务器600发送所述确定子模块530b确定出的所述未同步的日志信息。
[0163]可选地,所述第一数据同步装置502还包括:第一检测模块512、第一获取模块514和第一删除模块516。
[0164]第一检测模块512,被配置为检测所述第一日志文件的剩余存储空间是否小于所述写操作命令的字节大小。
[0165]第一获取模块514,被配置为在所述第一检测模块512检测出所述第一日志文件的剩余存储空间小于所述写操作命令的字节大小的情况下,获取所述第一日志文件中的第一目标日志信息;其中,所述第一目标日志信息的字节大小与所述第一日志文件的剩余存储空间之和大于或者等于所述写操作命令的字节大小,且所述第一目标日志信息是所述第一日志文件中最早记录的日志信息。
[0166]第一删除模块516,被配置为删除所述第一获取模块514获取到的所述第一目标日志信息。
[0167]可选地,所述第一数据同步装置502还包括:响应检测模块540和日志重发模块550。
[0168]响应检测模块540,被配置为检测在所述日志发送模块530发出所述日志信息后的预定时段内是否接收到所述第二数据库服务器600反馈的成功接收响应,所述成功接收响应用于指示所述第二数据库服务器600已成功接收所述日志信息。
[0169]日志重发模块550,被配置为在所述响应检测模块540检测出未接收到所述成功接收响应的情况下,向所述第二数据库服务器600重发所述日志信息。
[0170]第二数据同步装置602可以包括:日志接收模块610、日志写入模块620和命令执行模块630。
[0171]日志接收模块610,被配置为接收第一数据库服务器500发送的日志信息,所述日志信息包括对应于第一数据库501的写操作命令。
[0172]日志写入模块620,被配置为将所述日志接收模块610接收到的所述日志信息写入第二日志文件中。
[0173]命令执行模块630,被配置为根据所述日志写入模块620写入至所述第二日志文件中的所述日志信息,对第二数据库601执行所述写操作命令。
[0174]可选地,所述第二数据同步装置602还包括:第二检测模块612、第二获取模块614和第二删除模块616。
[0175]第二检测模块612,被配置为检测所述第二日志文件的剩余存储空间是否小于所述日志信息的字节大小。
[0176]第二获取模块614,被配置为在所述第二检测模块612检测出所述第二日志文件的剩余存储空间小于所述日志信息的字节大小的情况下,获取所述第二日志文件中的第二目标日志信息;其中,所述第二目标日志信息的字节大小与所述第二日志文件的剩余存储空间之和大于或者等于所述日志信息的字节大小,且所述第二目标日志信息是所述第二日志文件中最早记录的日志信息。
[0177]第二删除模块616,被配置为删除所述第二获取模块614获取到的所述第二目标日志信息。
[0178]可选地,所述第二数据同步装置602还包括:响应发送模块640。
[0179]响应发送模块640,被配置为向所述第一数据库服务器500发送成功接收响应,所述成功接收响应用于指示已成功接收所述日志信息。
[0180]综上所述,本实施例提供的数据同步系统,通过第一数据库服务器获取对应于第一数据库的写操作命令,并将该写操作命令写入第一日志文件中,然后向第二数据库服务器发送包括该写操作命令的日志信息,使得第二数据库服务器根据该日志信息对第二数据库执行上述写操作命令,完成数据同步备份;解决了相关技术因存在主库与从库中的数据同时丢失的风险,而导致整个数据库系统的可用性较差的问题;避免了两个数据库中的数据完全丢失的风险,保证了整个数据库系统的高可用性。
[0181]另外,还通过第一数据库服务器检测在发出日志信息后的预定时段内是否接收到第二数据库服务器反馈的成功接收响应,并在未接收到成功接收响应的情况下,向第二数据库服务器重发日志信息;保证了第二数据库服务器能够成功接收到第一数据库服务器发送的日志信息,进而为数据库的同步提供可靠保障。
[0182]关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0183]本公开一示例性实施例还提供了一种数据同步装置,该数据同步装置包括:处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器被配置为:
[0184]获取对应于第一数据库的写操作命令;
[0185]将所述写操作命令写入第一日志文件中;
[0186]向第二数据库服务器发送包括所述写操作命令的日志信息,所述第二数据库服务器用于根据所述日志信息对第二数据库执行所述写操作命令。
[0187]在一种可能的实施方式中,所述处理器被配置为:
[0188]获取所述第一日志文件中已同步的日志信息的偏移位置;
[0189]根据所述偏移位置确定所述第一日志文件中未同步的日志信息,所述未同步的日志信息包括所述写操作命令;
[0190]向所述第二数据库服务器发送所述未同步的日志信息。
[0191]在一种可能的实施方式中,所述处理器还被配置为:
[0192]检测所述第一日志文件的剩余存储空间是否小于所述写操作命令的字节大小;
[0193]若所述第一日志文件的剩余存储空间小于所述写操作命令的字节大小,则获取所述第一日志文件中的第一目标日志信息;其中,所述第一目标日志信息的字节大小与所述第一日志文件的剩余存储空间之和大于或者等于所述写操作命令的字节大小,且所述第一目标日志信息是所述第一日志文件中最早记录的日志信息;
[0194]删除所述第一目标日志信息。
[0195]在一种可能的实施方式中,所述处理器还被配置为:
[0196]检测在发出所述日志信息后的预定时段内是否接收到所述第二数据库服务器反馈的成功接收响应,所述成功接收响应用于指示所述第二数据库服务器已成功接收所述日志信息;
[0197]若未接收到所述成功接收响应,则向所述第二数据库服务器重发所述日志信息。
[0198]本公开另一示例性实施例还提供了一种数据同步装置,该数据同步装置包括:处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器被配置为:
[0199]接收第一数据库服务器发送的日志信息,所述日志信息包括对应于第一数据库的写操作命令;
[0200]将所述日志信息写入第二日志文件中;
[0201 ] 根据所述日志信息对第二数据库执行所述写操作命令。
[0202]在一种可能的实施方式中,所述处理器还被配置为:
[0203]检测所述第二日志文件的剩余存储空间是否小于所述日志信息的字节大小;
[0204]若所述第二日志文件的剩余存储空间小于所述日志信息的字节大小,则获取所述第二日志文件中的第二目标日志信息;其中,所述第二目标日志信息的字节大小与所述第二日志文件的剩余存储空间之和大于或者等于所述日志信息的字节大小,且所述第二目标日志信息是所述第二日志文件中最早记录的日志信息;
[0205]删除所述第二目标日志信息。
[0206]在一种可能的实施方式中,所述处理器还被配置为:
[0207]向所述第一数据库服务器发送成功接收响应,所述成功接收响应用于指示已成功接收所述日志信息。
[0208]图8是根据一示例性实施例示出的一种装置800的框图。例如,装置800可以被提供为一服务器。参照图8,装置800包括处理组件822,其进一步包括一个或多个处理器,以及由存储器832所
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1