数据库的备份方法及备份装置的制造方法_3

文档序号:9708179阅读:来源:国知局
0-10 08:40:00”时设备通电重新加载从数据库DB2中的数据,通过执行本地磁盘中备份日志所记载的数据操作命令对从数据库进行数据恢复,备份日志中记录的最后一条数据操作命令对应的时间信息“2015-10-10 07:10:00”,即从数据库DB2可根据备份日志将数据恢复至“2015-10-10 07:10:00”时刻;随后,通过比较备份日志中记录的最后一条数据操作命令对应的时间信息“2015-10-10 07:10:00”,与主数据库中发送同步数据操作命令的时间信息“2015-10-10 09:10:00”进行对比,确定同步偏移量为在时间“2015-10-10 07:10:01”至时间“2015-10-10 08:40:00”期间主数据库DBi中新增的数据,若新增了 10条数据记录,随后,将主数据DBi*新增的10条数据记录同步至DB2中,DB2执行相应的数据操作命令并在DB2同步日志中记录数据操作命令对应的信息,从而实现了从数据库的快速数据补齐。
[0079]图3为本发明中另一实施例的数据库的备份装置的结构示意图。
[0080]当接收到主数据库的数据同步请求时,操作执行模块310解析数据同步请求中的数据操作命令,执行数据操作命令并在同步日志中记录数据操作命令对应的信息;备份模块320以预定的备份频率,将从数据库的同步日志备份至本地磁盘中,以生成备份日志。
[0081]本发明的实施例中,提出了一种数据库的备份方案,通过建立从数据库中数据的落盘备份方式,在从数据库发生故障的情况下,可通过备份至本地磁盘的备份日志实现从库的快速数据恢复,大大提高了数据恢复效率,从而保证了从数据库的持续数据稳定性,为在主数据库发生故障时由与其同步运行的其它从数据库服务器代替该故障主数据库服务器提供读写访问服务,以满足数据库系统向前端业务提供连续性服务提供有力保障。本发明的实施例中,通过从数据库数据的落盘备份、从数据库数据重新加载时通过落盘的备份日志快速恢复备份数据以及基于备份日志中的相应标识通过主数据库实现快速数据补齐,可确保当从数据库发生故障后能够将故障从数据库的数据快速修复,避免了数据意外丢失,最终实现主从数据库系统的数据高稳定性和高业务连续性。
[0082]当接收到主数据库的数据同步请求时,操作执行模块310解析数据同步请求中的数据操作命令,执行数据操作命令并在同步日志中记录数据操作命令对应的信息。
[0083]其中,数据操作命令对应的信息包括数据操作命令及与数据同步请求相应的标识
?目息。
[0084]其中,数据同步请求相应的标识信息,包括但不限于:
[0085]数据同步请求的时间信息;
[0086]数据同步请求的请求ID;
[0087]在从数据库中执行数据操作命令的时间信息;
[0088]在从数据库中执行数据操作命令的执行ID。
[0089]例如,在包括一个主数据库DBi和至少一个从数据库DB^数据系统中,DBdPDB2通过TCP(Transmiss1n Control Protocol,传输控制协议)协议建立通信链接,当主数据库DBi接收来自外部的数据操作命令时,如添加一条key-value数据存储格式的新数据“Ki+1”,其中key数据单元为“Kf,value数据单元为“1”,在DBi*执行该数据操作命令,即执行添加“Ki+1”数据的操作,随后向DB2发送包括该数据操作命令的数据同步请求,DB2接收到主数据库的数据同步请求时,DB2解析来自DB^数据同步请求为添加%+1”的数据操作命令,随后执行添加“Ki+1”的操作,并在从DB2的同步日志中记录添加“Kdl”的数据操作命令以及与数据同步请求相应的标识信息,如在DB2中接收到添加“Ki+1”数据操作请求的时间信息“2015-05-06 12: 20:00”或DB2中执行添加“Ki+1”数据操作命令的时间信息“2015-05-06 12:20:10”或数据同步请求ID “01”或DB2中执行添加“Ki+1”数据操作命令的执行ID %_01”。
[0090]备份模块320以预定的备份频率,将从数据库的同步日志备份至本地磁盘中,以生成备份日志。
[0091 ]其中,备份模块320具体包括但不限于以下任一项情形:
[0092]依据预定的时间间隔,将从数据库的同步日志备份至本地磁盘中;或
[0093]依据预定的数据操作的条目数,将从数据库的同步日志备份至本地磁盘中。
[0094]例如,从数据库DB2接收到来自主数据库数据同步请求生成的同步日志,首先缓存在DB2的缓存区域中,并以预定的备份频率如每小时一次,将缓存区域中的同步日志备份至本地磁盘中,以生成备份日志。
[0095]又例如,预定的数据操作的条目数如10条数据操作条目,从数据库DB2接收到来自主数据库DBi的数据同步请求生成的同步日志,首先缓存在DB2的缓存区域中,当缓存区域中缓存的同步日志中包括的数据操作命令对应的信息的条目数达到10条时,将包括10条数据操作命令对应的信息的同步日志备份至本地磁盘中,以生成备份日志。
[0096]其中,同步日志至是二进制日志binlog。
[0097]例如,从数据库DB2中的同步日志为二进制日志binlog,从数据库DB2中存储的数据操作命令及数据同步请求相应的标识信息以二进制形式存储至DB2的二进制日志binlog中。
[0098]其中,从数据库为内存型数据库。
[0099]本发明的实施例中,主从数据库均为内存型数据库。内存型数据库可与本地磁盘之间实现高效的数据传输及读写操作,从而为实现数据高效存储及备份提供了有力保障。
[0100]在一优选实施例中,如图2所示,当从数据库重新加载时,该装置还包括恢复模块410、偏移量确定模块420和同步模块430。基于备份日志,恢复模块410对从数据库进行数据恢复;偏移量确定模块420将备份日志中记录的最后一条数据操作命令对应的标识信息,与主数据库中数据操作命令的标识信息进行对比,确定同步偏移量;同步模块430将主数据中与同步偏移量对应的数据操作命令同步至从数据库中。
[0101]例如,预定义数据同步请求ID值以自增长整数型方式进行记录,当从数据库DB2中的同步日志丢失时,通过执行本地磁盘中备份日志所记载的数据操作命令对从数据库进行数据恢复,同时,备份日志中记录的最后一条数据操作命令对应的标识信息,如数据同步请求的请求ID “01”与主数据库中同步日志中记录的最后一条数据操作命令的标识信息,如数据同步请求的请求ID“06”进行对比,确定同步偏移量为数据同步请求的请求ID“02”至数据同步请求的请求ID “06”,随后,将主数据DBi中与数据同步请求的请求ID “02”至数据同步请求的请求ID “06”对应的数据操作命令同步至DB2中。
[0102]又例如,接上例,当08:主数据库由于数据库崩溃或数据库所在设备发生物理性损坏等导致DBi主数据库数据丢失的情况下,可获取DB2从数据库的同步日志,在重新初始化建立DBi主数据库后,将DB2从数据库的数据全部同步至DBi主数据库中,具体为通过执行DB2从数据库的同步日志中的记录重新恢复DB2从数据库中的数据。
[0103]在另一优选实施例中,当主数据库DBi接收到来自外部的数据操作命令,即修改主数据库DBi中的数据%+add”为“h+addit1n”,可通过key值查找到相应的数据为“K#add”并修改为“Ki+addit1n”,主数据库DBj# “Ki+add”修改为“Ki+addit1n”的操作信息以二进制形式存储至DBi的二进制日志binlog中,并发送包括该数据操作命令的数据同步请求至从数据库DB2,从数据库DB2对接收到的该数据同步请求进行解析并执行“Ki+add”修改为%+addit1n”的数据操作命令,且从数据库DB
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1