一种实现数据复制的方法及系统技术方案

技术编号:6962148 阅读:179 留言:0更新日期:2012-04-11 18:40
本申请公开了一种实现数据复制的系统及方法,解决了现有技术中由于主主复制技术带来系统不稳定的问题。该系统包括:第一数据存储设备,用于接收数据插入更新终端发送的第一更新操作指令,其中含有需要更新的记录的信息,并根据所述第一更新操作指令更新记录;日志子系统,用于接收数据插入更新终端发送的第二更新操作指令,其中包括需要更新的记录的信息,对选定的日志代理服务器进行更新;根据需要更新的记录的信息与第二数据存储设备标识的对应关系,获得对应的第二数据存储设备标识,向所述第二数据存储设备发送数据更新指令,其中含有所述需要更新的记录的信息;第二数据存储设备,用于根据所述数据更新指令,进行数据更新。

【技术实现步骤摘要】

本申请涉及数据库管理
,特别是指一种实现数据复制的方法及系统
技术介绍
为保持数据的高可用性,一般的数据库都有一定的数据冗余机制,比如参见图1 所示,采用mysql的数据库主主复制技术中,至少包括三台服务器,即服务器A、服务器B和服务器C,也可以称为三个数据存储设备。其中,服务器A与服务器B之间为主主复制关系, 服务器A和服务器B两个服务器,与服务器C之间是主从复制关系。主主复制关系是指服务器A与服务器B之间是互为备份的关系,图中示意出的数据插入更新终端可以包括多个, 每个数据插入更新终端可以对服务器A和服务器B发送更新操作指令,即服务器A收到数据插入更新终端的更新操作指令后,如插入、修改、删除等,将该更新操作指令保存在自身的执行日志中,然后再将该日志发送给服务器B,服务器B再执行日志,也即完成更新操作。 同时,如果服务器B收到更新操作指令后,同样按照上述方式执行完更新操作后,同样会将执行的日志发送给服务器A。服务器C是服务器A和服务器B的从服务器,需要定期备份服务器A和服务器B的数据。由于服务器A和服务器B都可以接收更新操作指令,如果两者接收到的更新操作指令有冲突,比如服务器A接收到删除某记录的操作的指令,而服务器B接收到修改该记录的操作指令,当服务器A执行过程中,执行的日志尚未发送给服务器B时,服务器B收到修改该记录的操作指令,已经执行了修改指令,在向服务器A发送执行的日志时,服务器A已经删除了该记录,无法执行修改操作,后续的操作也就都无法顺利进行。因此,系统容易产生不稳定因素,日志重做出错,会停止后续的所有的复制操作。
技术实现思路
本申请提供一种实现数据复制的系统及方法,用以解决现有技术中由于主主复制技术带来系统不稳定的问题。本申请实施例提供的一种实现数据复制的系统包括第一数据存储设备,用于接收数据插入更新终端发送的第一更新操作指令,其中含有需要更新的记录的信息,并根据所述第一更新操作指令更新记录;日志子系统,用于接收所述数据插入更新终端发送的第二更新操作指令,其中包括需要更新的记录的信息;根据需要更新的记录的信息,在选定的日志代理服务器上进行更新;根据需要更新的记录的信息与第二数据存储设备标识的对应关系,获得所述需要更新的记录的信息对应的第二数据存储设备标识,向所述第二数据存储设备发送数据更新指令,其中含有所述需要更新的记录的信息;第二数据存储设备,用于根据所述数据更新指令,进行数据更新。本申请实施例提供的一种实现数据复制的方法,包括数据插入更新终端向第一数据存储设备发送第一更新操作指令,其中含有需要更4新的记录的信息,并向日志子系统发送第二更新操作指令,其中包括需要需要更新的记录的信息;第一数据存储设备根据所述第一更新操作指令更新记录,且,日志子系统根据需要更新的记录的信息,在选定的日志代理服务器上进行更新; 根据需要更新的记录的信息与第二数据存储设备标识的对应关系,获得所述需要更新的记录的信息对应的第二数据存储设备标识,向所述第二数据存储设备发送数据更新指令,其中含有所述需要更新的记录的信息;第二数据存储设备根据所述数据更新指令,进行数据更新。本申请实施例中增加了一个日志子系统,当数据插入更新终端在向第一数据存储设备发送第一更新操作指令时,也向日志子系统发送第二更新操作指令,日志子系统根据第二更新操作指令在选定的日志代理服务器上进行更新操作,同时所述选定的日志代理服务器确认对应的第二数据存储设备,再向第二数据存储设备发送相应的数据更新指令,解决了现有技术中由于第一数据存储设备和第二数据存储设备之间采用互主主复制技术带来系统不稳定的问题,由于通过日志子系统将第一数据存储设备的更新的数据备份到第二数据存储设备,在执行过程中,第一数据存储设备和第二数据存储设备无相互依赖,因此在提高系统稳定性的同时,还可以提高设备的性能。附图说明图1为现有技术中采用主主复制技术的数据复制的系统结构示意图;图2为本申请实施例的数据复制的系统结构示意图;图3为本申请实施例的数据复制的方法的流程示意图;图4为本申请实施例的需要更新的记录的信息示意图。具体实施例方式在本申请提供的实施例中,为了解决采用两个互为备份的主主复制技术的数据存储设备之间由于操作冲突可能引起的系统不稳定问题,增加了一个日志子系统,当数据插入更新终端在向第一数据存储设备发送第一更新操作指令后,也向日志子系统发送第二更新操作指令,日志子系统根据第二更新操作指令,并结合所有日志代理服务器的负载情况, 选择一台日志代理服务器进行更新操作,同时根据第二更新操作指令中包含的需要更新的记录的信息,如信息ID,得到事先配置好的对应的第二数据存储设备的标识,再向第二数据存储设备发送相应的数据更新指令,从而完成将第一数据存储设备的数据备份到第二数据存储设备中。参见图2所示,本申请实施例的系统包括数据插入更新终端21、第一数据存储设备22和第二数据存储设备23,以及日志子系统对。日志子系统M包括控制单元Ml以及多个日志代理服务器,如第一日志代理服务器M2、第二日志代理服务器M3以及第三日志代理服务器M4。在实际应用过程中,第一数据存储设备22,是一台存贮服务器对外的标准接口服务器,代表最终的存贮服务器接受数据的插入、更新和删除等操作,一般是与最终的存贮机制(如mysql)安装在一台服务器上,它第一时间接收数据插入更新终端发送的第一更新操作指令,其中含有需要更新的记录的信息,并根据所述第一更新操作指令更新记录;日志子系统M,用于接收所述数据插入更新终端21发送的第二更新操作指令, 其中包括需要更新的记录的信息;根据日志子系统中所有日志代理服务器的负载情况,选定一台合适的日志代理服务器,将包含需要更新的记录的信息的第二更新操作指令同步提交到这台选定的日志代理服务器,选定的日志代理服务器以更新操作日志的格式将接收到的需要更新的记录的信息保存在日志代理服务器的复制日志中,供后期进行异步复制操作使用;日志代理服务器的复制进程取出更新操作日志,根据需要更新的记录的信息,如信息 ID,得到事先配置好的对应的第二数据存储设备的标识,向所述第二数据存储设备发送数据更新指令,其中含有所述需要更新的记录的信息;第二数据存储设备23,是一台存贮服务器对外的标准接口服务器,代表最终的存贮服务器接受数据的插入、更新和删除等操作,一般是与最终的存贮机制(如mysql)安装在一台服务器上,用于根据所述数据更新指令,进行数据更新,相对于第一数据存储设备, 因为第二数据存储设备上接受的数据更新操作是通过中间的复制日志异步操作完成的,所以不会这么及时,但最终会与同一组的第一数据存储设备上的数据保持一致。所述日志子系统M包括控制单元241和至少一个日志代理服务器,如第一日志代理服务器对2、第二日志代理服务器对3、第三日志代理服务器对4,其中,所述控制单元M1,用于接收所述数据插入更新终端发送的第二更新操作指令,其中包括需要更新的记录的信息;根据日志子系统中所有日志代理服务器的负载情况,选定一台合适的日志代理服务器,向选定的日志代理服务器发送第二更新操作指令,其中含有所述需要更新的记录的信息;每个日志代理服务器,用于接收到所述第二更新操作指令后,利用所述需要更新的记录的信息进行更新操作;本文档来自技高网...

【技术保护点】
1.一种实现数据复制的系统,其特征在于,该系统包括:第一数据存储设备,用于接收数据插入更新终端发送的第一更新操作指令,其中含有需要更新的记录的信息,并根据所述第一更新操作指令更新记录;日志子系统,用于接收所述数据插入更新终端发送的第二更新操作指令,其中包括需要更新的记录的信息;根据需要更新的记录的信息,在选定的日志代理服务器上进行更新;根据需要更新的记录的信息与第二数据存储设备标识的对应关系,获得所述需要更新的记录的信息对应的第二数据存储设备标识,向所述第二数据存储设备发送数据更新指令,其中含有所述需要更新的记录的信息;第二数据存储设备,用于根据所述数据更新指令,进行数据更新。

【技术特征摘要】

【专利技术属性】
技术研发人员:张宋景常国斌朱明君李翀覃健祥全鑫
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1