【技术实现步骤摘要】
数据复制方法、装置、计算机设备及存储介质
本专利技术涉及数据库
,特别涉及一种数据复制方法、装置、计算机设备及存储介质。
技术介绍
在数据库技术中,尤其是OLAP(onlineanalyticalprocessing,联机实时分析)处理系统、数据仓库、大数据分析等场景中,经常需要从数据库中复制数据,对已有数据进行及时备份。在复制过程中通常涉及到主机和备机两种设备,对于目前的数据库(例如Oracle、MySQL或者InnoDB等)而言,主机可以定期将数据库中的数据文件复制到备机上,实现基于数据文件的主备同步,进一步地,为了避免由于数据文件在复制过程损坏导致主机与备机数据不一致,主机和备机建立通信连接后,两者的数据库之间同步一个重做日志(REDOLOG),一旦复制过程出现异常,备机通过回放重做日志清除掉异常的数据。然而,由于重做日志的解析工作和回放工作较为复杂,在大数据量的场景下,备机回放重做日志会消耗较长时间,影响数据复制过程的效率。
技术实现思路
本专利技术实施例提供了一种数据复制方法、装置、计算机设备及存储介质,能够解决基于重做日志复制数据时,消耗时间长,解析回放工作复杂,影响数据复制效率的问题。该技术方案如下:一方面,提供了一种数据复制方法,该方法包括:当检测到任一事务的提交操作时,将该事务的历史态数据添加到数据队列中,该数据队列用于缓存历史态数据;将该数据队列中的至少一个历史态数据添加到至少一个发送缓冲区中的任一发送缓冲区,该发送缓冲区用于缓存待复制的历史态数据;当符合第一预设条件时,将该发送缓冲区中的该至少一个历史态数据复制至集群设备。一方面,提 ...
【技术保护点】
1.一种数据复制方法,其特征在于,所述方法包括:当检测到任一事务的提交操作时,将所述事务的历史态数据添加到数据队列中,所述数据队列用于缓存历史态数据;将所述数据队列中的至少一个历史态数据添加到至少一个发送缓冲区中的任一发送缓冲区,所述发送缓冲区用于缓存待复制的历史态数据;当符合第一预设条件时,将所述发送缓冲区中的所述至少一个历史态数据复制至集群设备。
【技术特征摘要】
1.一种数据复制方法,其特征在于,所述方法包括:当检测到任一事务的提交操作时,将所述事务的历史态数据添加到数据队列中,所述数据队列用于缓存历史态数据;将所述数据队列中的至少一个历史态数据添加到至少一个发送缓冲区中的任一发送缓冲区,所述发送缓冲区用于缓存待复制的历史态数据;当符合第一预设条件时,将所述发送缓冲区中的所述至少一个历史态数据复制至集群设备。2.根据权利要求1所述的方法,其特征在于,所述将所述数据队列中的至少一个历史态数据添加到至少一个发送缓冲区中的任一发送缓冲区包括:当检测到所述数据队列中增加任一历史态数据时,将所述历史态数据添加到所述发送缓冲区;所述当符合第一预设条件时,将所述发送缓冲区中的所述至少一个历史态数据复制至集群设备包括:当检测到所述发送缓冲区中增加任一历史态数据时,将所述发送缓冲区中的所述至少一个历史态数据复制至所述集群设备。3.根据权利要求1所述的方法,其特征在于,所述将所述数据队列中的至少一个历史态数据添加到至少一个发送缓冲区中的任一发送缓冲区包括:每间隔第一预设时长,获取所述数据队列中在当前时刻之前的所述第一预设时长内增加的至少一个历史态数据;按照事务提交时间戳从小到大的顺序,对所述至少一个历史态数据进行排序,当存在事务提交时间戳相同的多个历史态数据时,按照事务标识从小到大的顺序对所述多个历史态数据进行排序,得到至少一个有序排列的历史态数据,将所述至少一个有序排列的历史态数据添加到所述发送缓冲区。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一预设条件为检测到所述发送缓冲区中增加任一历史态数据;或,所述第一预设条件为当检测到所述发送缓冲区的已用数据量占所述发送缓冲区的容量的比例达到比例阈值;或,所述第一预设条件为当前时刻距离所述发送缓冲区上一次向所述集群设备执行数据复制达到第二预设时长;或,所述第一预设条件为当前时刻距离所述发送缓冲区上一次向所述集群设备执行数据复制达到第三预设时长,所述第三预设时长为多个节点设备中每一个节点设备都配置有的相同的预设时长,所述第三预设时长大于所述第二预设时长。5.根据权利要求1所述的方法,其特征在于,所述方法还包括下述任一项或至少两项的组合:当接收到所述集群设备发送的复制成功响应时,清空与所述复制成功响应所对应的发送缓冲区;或,将所述数据队列中来自于同一个原始数据表的历史态数据均匀地添加到多个发送缓冲区中。6.一种数据复制方法,其特征在于,所述方法包括:从至少一个接收缓冲区中的任一接收缓冲区接收任一节点设备发送的至少一个历史态数据,所述接收缓冲区用于缓存接收的历史态数据;将所述接收缓冲区中的所述至少一个历史态数据添加到转发缓冲区,通过所述转发缓冲区,将所述至少一个历史态数据转换为符合元组格式的数据,得到至少一个数据项,所述转发缓冲区用于对历史态数据进行数据格式转换;将所述至少一个数据项存储到集群数据库的至少一个目标数据表中,一个目标数据表对应于一个数据项在所述节点设备中所在的一个原始数据表。7.根据权利要求6所述的方法,其特征在于,所述将所述至少一个数据项存储到集群数据库的至少一个目标数据表中包括:对任一以元组为单位的数据项,按照所述数据项所在的原始数据表中的存储格式,将所述数据项存储在与所述原始数据表所对应的目标数据表中;或,对任一表示字段变更情况的数据项,按照键值对的存储格式,将所述数据项存储在与所述原始数据表所对应的目标数据表中。8.根据权利要求7所述的方法,其特征在于,所述按照键值对的存储格式,将所述数据项存储在与所述原始数据表所对应的目标数据表中包括:将所述数据项在所述原始数据表中的键名或者所述数据项的生成时间中的至少一项,确定为所述数据项在所述目标数据表中的键名;将所述至少一个数据项在所述原始数据表中被修改的字段,确定为所述至少一个数据项在所述目标数据表中的键值。9.根据权利要求6所述的方法,其特征在于,所述方法还包括:在所述至少一个历史...
【专利技术属性】
技术研发人员:李海翔,
申请(专利权)人:深圳市腾讯计算机系统有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。