【技术实现步骤摘要】
一种数据复制方法及装置
[0001]本申请涉及数据库
,尤其涉及一种数据复制方法及装置。
技术介绍
[0002]目前,数据库(比如MySQL)主从复制在行业内有着广泛应用,比如主备高可用、读写分离、容灾备份、伪装成一个备库进行行列转换、实现混合事务/分析处理(Hybrid Transactional/Analytical Processing,HTAP)功能或实现异构数据库在线迁移等应用。
[0003]示例性地,以数据库为MySQL为例,MySQL主从复制一般采用“全量复制”+“增量复制”。具体地,从库先从主库获取一个一致性的快照(snapshot)和相对应的二进制日志/逻辑日志(Binary log,Binlog)点位;之后通过该一致性的快照从主库读取全量一致性的数据插入到从库中;然后,当全量复制完成时,从库通过该Binlog点位拉取Binlog开启增量复制。其中,在MySQL主从复制的过程中也会有一些过滤需求,比如用户可以选择性地同步自己需要的数据。随着业务的发展变化,用户的过滤需求会随之发生变化,因此需要数据库主从复制能够支持动态的数据过滤条件(也可以理解为数据复制条件)。
[0004]然而,虽然MySQL自身提供了在源端设备和目标端设备过滤的能力,但是在变更数据复制条件的过程中仍然存在一些问题(比如变更数据复制条件需要重启服务或数据复制条件无法持久化或数据复制异常后数据复制条件丢失等),不够灵活,难以满足一些场景下的需求。
技术实现思路
[0005]本申请实施例提供一种数 ...
【技术保护点】
【技术特征摘要】
1.一种数据复制方法,其特征在于,包括:响应于用户在配置界面对第一源库的数据复制条件编辑操作,获取第一结构化查询语言sql复制语句;根据所述第一sql复制语句,将所述第一源库中的第一目标数据复制至所述第一源库对应的第一目标库中。2.如权利要求1所述的方法,其特征在于,根据所述第一sql复制语句,将所述第一源库中的目标数据复制至所述第一源库对应的第一目标库中,包括:根据所述第一sql复制语句,建立所述第一源库与所述第一目标库之间的第一复制通道,并将所述第一目标数据中包括的第一部分数据全量复制至所述第一目标库中;当所述第一目标数据中包括的第一部分数据全量复制完成时,通过所述第一复制通道对所述第一源库进行二进制日志/逻辑日志binlog增量复制,所述第一源库对应的binlog增量复制用于实现所述第一目标数据中包括的第二部分数据的复制,在所述第一目标数据中的所述第二部分数据写入所述第一源库的时间晚于所述第一目标数据中的所述第一部分数据的全量复制开始时间。3.如权利要求2所述的方法,其特征在于,所述方法还包括:响应于所述用户在所述配置界面对第二源库的数据复制条件编辑操作,获取第二sql复制语句;根据所述第二sql复制语句,建立所述第二源库与所述第二目标库之间的第二复制通道,并将所述第二源库中的第二目标数据中包括的第一部分数据全量复制至所述第二目标库中;当所述第二目标数据中包括的第一部分数据全量复制完成时,通过所述第二复制通道对所述第二源库进行binlog增量复制,所述第二源库对应的binlog增量复制用于实现所述第二目标数据中包括的第二部分数据的复制,在所述第二目标数据中的所述第二部分数据写入所述第二源库的时间晚于所述第二目标数据中的所述第一部分数据的全量复制开始时间;其中,当所述第二复制通道的binlog增量复制流进度大于或等于所述第一复制通道的binlog增量复制流进度时,将所述第二复制通道与所述第一复制通道进行合并。4.如权利要求1
‑
3任一项所述的方法,其特征在于,所述方法还包括:响应于所述用户在所述配置界面对所述第一源库的指示编辑操作,获取第一指示信息,所述第一指示信息用于指示对所述第一源库进行停止复制;根据所述第一指示信息,对所述第一源库进行停止复制,并删除或停止使用所述第一目标库。5.一种数据复制方法,其特征在于,包括:响应于用户在配置界面对第一待复制表的数据复制条件编辑操作,获取第一结构化查询语言sql复制语句;所述第一待复制表存储于第一源库中;根据所述第一sql复制语句,将所述第一待复制表中的第一目标数据复制至第一目标表中;所述第一目标表存储于所述第一源库对应的第一目标库中。6.如权利要求5所述的方法,其特征在于,根据所述第一sql复制语句,将所述第一待复制表中的第一目标数据复制至第一目标表中,包括:
根据所述第一sql复制语句,建立所述第一源库与所述第一目标库之间的第一复制通道,并将所述第一目标数据中包括的第一部分数据全量复制至所述第一目标表中;当所述第一目标数据中包括的第一部分数据全量复制完成时,通过所述第一复制通道对所述第一待复制表进行二进制日志/逻辑日志binlog增量复制,所述第一待复制表对应的binlog增量复制用于实现所述第一目标数据中包括的第二部分数据的复制,在所述第一目标数据中的所述第二部分数据写入所述第一待复制表的时间晚于所述第一目标数据中的所述第一部分数据的全量复制开始时间。7.如权利要求6所述的方法,其特征在于,所述方法还包括:响应于用户在配置界面对第二待复制表的数据复制条件编辑操作,获取第二sql复制语句,所述第二待复制表存储于所述第一源库中;根据所述第二sql复制语句,建立一个具有隐藏属性的第二目标库,并建立所述第一源库与所述第二目标库之间的第二复制通道,将所述第二待复制表中的第二目标数据中包括的第一部分数据全量复制至所述第二目标表中,所述第二目标库中包括所述第二目标表;当所述第二目标数据中包括的第一部分数据全量复制完成时,通过所述第二复制通道对所述第二待复制表进行binlog增量复制,所述第二待复制表对应的binlog增量复制用于实现所述第二目标数据中包括的第二部分数据的复制,在所述第二目标数据中的所述第二部分数据写入所述第二待复制表的时间晚于所述第二目标数据中的所述第一部分数据的全量复制开始时间;其中,当所述第二复制通道的binlog增量复制流进度大于或等于所述第一复制通道的binlog增量复制流进度时,将所述第二复制通道与所述第一复制通道进行合并,并将所述第一目标库与所述第二目标库进行合并。8.如权利要求5
‑
7任一项所述的方法,其特征在于,所述方法还包括:响应于所述用户在所述配置界面对所述第一待复制表的指示编辑操作,获取第一指示信息,所述第一指示信息用于指示对所述第一待复制表进行停止复制;根据所述第一指示信息,对所述第一待复制表进行停止复制,并删除或停止使用所述第一目标表。9.一种数据复制装置,其特征在于,包括:显示模块,用于显示配置界面;获取模块,用于响应于用户在所述配置界面对第一源库的数据复制条件编辑操作,获取第一sql复制语句;处理模块,用于根据所述第一sql复制语句,将所述第一源库中的第一目标数据复制至所述第一源库对应的第一目标库中。10.如权利要求9所述的装置,其特征在于,所述处理模块在根据所述第一sql复制语句,将所述第一源库中的第一目标数据复制至所述第一源库对应的第一目标库中时,具体用于:根据所述第一sql复制语句,建立所述第一源库与所述第一目标库之间的第一复制通道,并将所述第一目标数据中包括的第一部分数据全量复制至所述第一目标库中;当所述第一目标数据中包括的第一部分数据全量复制完成时,通过所述第一复制通道对所述第一源库进行b...
【专利技术属性】
技术研发人员:宋立勇,朱冠宇,斯蒂格,
申请(专利权)人:深圳华为云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。