一种ORACLE数据库一对多协商复制断点的方法及系统技术方案

技术编号:30407382 阅读:14 留言:0更新日期:2021-10-20 11:16
本发明专利技术公开了一种ORACLE数据库一对多协商复制断点的方法及系统,所述方法包括如下步骤:步骤S1,当产生复制中断时,向各目标端发送协商TF文件序号的协商指令,与各目标端协商TF文件序号;步骤S2,针对每个目标端,根据协商的TF文件序号于源端相应TF文件中查找事务提交信息,并获取最后的事务提交信息的RBA信息作为对应目标端的断点;步骤S3,在完成各目标端的断点数据收集后,对断点数据从小到大进行排序,并从最小断点开始,判断断点数据是否合法,在判断出某一断点数据合法后,标记该断点之后的所有断点信息对应的目标端为正常复制状态,并将该合法断点作为REDOLOG文件的分析起点启动复制。动复制。动复制。

【技术实现步骤摘要】
一种ORACLE数据库一对多协商复制断点的方法及系统


[0001]本专利技术涉及数据库同步
,特别是涉及一种ORACLE数据库一对多协商复制断点的方法及系统。

技术介绍

[0002]ORACLE数据库是一种使用非常广泛的数据库,在生产环境中为了满足容灾和读写分离、数据分发等需求,经常会部署ORACLE数据库复制产品,将源库实时数据复制到目标库。
[0003]ORACLE数据库向开发者提供了读取数据变化的重写日志机制,即REDOLOG,ORACLE数据库中将所有的数据库变化历史、数据库的所有操作变化都记录在重做日志REDOLOG中,对于ORACLE数据库复制产品,通过分析源库重做日志REDOLOG中的记录变化,然后将这些变化数据还原为SQL语句载到目标库中,可以实现ORACLE数据库的复制。
[0004]在ORACLE数据库复制中,还需要解决复制中断然后继续复制的问题,即需要保证复制的连续性,特别是在一对多复制情况下,每个目标数据库的复制进度不同,在复制中断后,需要确保每个目标库复制连续,但现有技术均未能很好地解决复制中断后保证复制的连续性问题,因此实有必要提出一种技术手段,以解决上述问题。

技术实现思路

[0005]为克服上述现有技术存在的不足,本专利技术之目的在于提供一种ORACLE数据库一对多协商复制断点的方法及系统,以通过在ORACLE数据库一对多复制过程中协商复制断点,从而在复制中断后,确保每个目标库复制连续。
[0006]为达上述目的,本专利技术提出一种ORACLE数据库一对多协商复制断点的方法,包括如下步骤:
[0007]步骤S1,当产生复制中断时,向各目标端发送协商TF文件序号的协商指令,与各目标端协商TF文件序号;
[0008]步骤S2,针对每个目标端,根据协商的TF文件序号于源端相应TF文件中查找事务提交信息,并获取最后的事务提交信息的RBA信息作为对应目标端的断点;
[0009]步骤S3,在完成各目标端的断点数据收集后,对断点数据从小到大进行排序,并从最小断点开始,判断断点数据是否合法,在判断出某一断点数据合法后,标记该断点之后的所有断点信息对应的目标端为正常复制状态,并将该合法断点作为REDOLOG文件的分析起点启动复制。
[0010]优选地,步骤S1进一步包括:
[0011]步骤S100,向各目标端发送协商TF文件序号的指令以及源端最大的TF文件序号;
[0012]步骤S101,接收各目标端返回的目标端最大的TF文件序号及该最大的TF文件序号对应的TF文件大小;
[0013]步骤S102,根据接收的各目标端反馈的最大TF文件序号及TF文件大小,判断是否
协商成功,于判断协商成功,获得协商的TF文件序号。
[0014]优选地,于步骤S101中,各目标端在接收到协商文件序号的协商指令后,查询其自身的TF目录,若其TF目录为空则将0作为其最大的TF文件序号发给源端;否则,在其自身TF目录中查询最大的TF文件序号,并截断不完整的事务,判断查询到的最大的TF文件序号是否大于接收的源端最大的TF文件序号,若大于,则返回协商序号失败结果至源端,否则将目标端最大的TF文件序号和该最大的TF文件序号对应的TF文件大小信息发送给源端。
[0015]优选地,于步骤S102中,当源端接收到各目标端返回的最大TF文件序号和TF文件大小信息后,如果接收的TF文件序号为0,则认为协商成功;若该TF文件序号在源端本地对应的TF文件中不存在或者目标端返回的TF文件大小大于源端相同TF文件序号的文件大小,则协商失败,反之则协商TF文件序号成功。
[0016]优选地,步骤S1还包括:
[0017]步骤S103,若协商失败,则清除源端本地存储的对应TF目录。
[0018]优选地,于步骤S2中,若未能获取到对应某个目标端的断点,则向该目标端发送查询断点的指令,获取该目标端返回的断点数据。
[0019]优选地,当目标端接收到查询断点的指令时,在其自身TF文件中查找事务提交信息,获取最后的事务提交消息的RBA信息作为断点返回给源端。
[0020]优选地,步骤S3进一步包括:
[0021]步骤S300,当完成各目标端的断点数据收集后,对各断点RBA信息从小到大进行排序;
[0022]步骤S301,从最小的断点开始,若其RBA信息中redo序列号对应的REDOLOG文件在数据库中依旧存在,则表示该断点RBA合法,标记改断点之后的所有断点信息对应的目标端为正常复制状态,并跳转到步骤S302;否则标记该断点对应的目标端复制异常,继续检查下一个断点;
[0023]步骤S302,将步骤301获得的合法断点RBA,作为REDOLOG文件的分析起点,启动复制,并将后续分析出的数据分发送到处于正常复制状态的目标端。
[0024]优选地,于步骤S302中,后续分发到各处于正常复制状态的目标端的数据以各个目标端对应的断点RBA作为过滤的条件,小于对应断点RBA的数据不允向对应目标端发送。
[0025]为达到上述目的,本专利技术还提供一种ORACLE数据库一对多协商复制断点的系统,包括:
[0026]协商处理单元,用于在产生复制中断时,向各目标端发送协商TF文件序号的协商指令,与各目标端协商TF文件序号;
[0027]断点确定单元,用于针对每个目标端,根据协商的TF文件序号于源端相应TF文件中查找事务提交信息,并获取最后的事务提交信息的RBA信息作为对应目标端的断点;
[0028]启动复制判断处理单元,用于在完成各目标端的断点数据收集后,对断点数据从小到大进行排序,并从最小断点开始,判断断点数据是否合法,在判断出某一断点数据合法后,标记该断点之后的所有断点信息对应的目标端为正常复制状态,并将该合法断点作为REDOLOG文件的分析起点启动复制。
[0029]与现有技术相比,本专利技术一种ORACLE数据库一对多协商复制断点的方法及系统通过在产生复制中断时,由源端向各目标端发送协商TF文件序号的协商指令,与各目标端协
商TF文件序号,并根据协商的TF文件序号获取各目标端的断点,对各目标端对应的断点数据从小到大进行排序,并从最小断点开始,判断断点数据是否合法,在判断出某一断点数据合法后,标记该断点之后的所有断点信息对应的目标端为正常复制状态,并将该合法断点作为REDOLOG文件的分析起点启动复制,从而实现了在复制中断后,确保每个目标库复制连续的目的。
附图说明
[0030]图1为本专利技术一种ORACLE数据库一对多协商复制断点的方法的步骤流程图;
[0031]图2为本专利技术一种ORACLE数据库一对多协商复制断点的系统的系统架构图。
具体实施方式
[0032]以下通过特定的具体实例并结合附图说明本专利技术的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本专利技术的其它优点与功效。本专利技术亦可通过其它不同的具体实例加以施行或应用,本说明书中的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种ORACLE数据库一对多协商复制断点的方法,包括如下步骤:步骤S1,当产生复制中断时,源端向各目标端发送协商TF文件序号的协商指令,与各目标端协商TF文件序号;步骤S2,针对每个目标端,根据协商的TF文件序号于源端相应TF文件中查找事务提交信息,并获取最后的事务提交信息的RBA信息作为对应目标端的断点;步骤S3,在完成各目标端的断点数据收集后,对断点数据进行排序,并从最小断点开始,判断断点数据是否合法,在判断出某一断点数据合法后,标记该断点之后的所有断点信息对应的目标端为正常复制状态,并将该合法断点作为REDOLOG文件的分析起点启动复制。2.如权利要求1所述的一种ORACLE数据库一对多协商复制断点的方法,其特征在于,步骤S1进一步包括:步骤S100,向各目标端发送协商TF文件序号的指令以及源端最大的TF文件序号;步骤S101,接收各目标端返回的目标端最大的TF文件序号及该最大的TF文件序号对应的TF文件大小;步骤S102,根据接收的各目标端反馈的最大TF文件序号及TF文件大小,判断是否协商成功,于判断协商成功,获得协商的TF文件序号。3.如权利要求2所述的一种ORACLE数据库一对多协商复制断点的方法,其特征在于:于步骤S101中,各目标端在接收到协商文件序号的协商指令后,查询其自身的TF目录,若其TF目录为空则将0作为其最大的TF文件序号发给源端;否则,在其自身TF目录中查询最大的TF文件序号,并截断不完整的事务,判断查询到的最大的TF文件序号是否大于接收的源端最大的TF文件序号,若大于,则返回协商序号失败结果至源端,否则将目标端最大的TF文件序号和该最大的TF文件序号对应的TF文件大小信息发送给源端。4.如权利要求3所述的一种ORACLE数据库一对多协商复制断点的方法,其特征在于:于步骤S102中,当源端接收到各目标端返回的最大TF文件序号和TF文件大小信息后,如果接收的TF文件序号为0,则认为协商成功;若该TF文件序号在源端本地对应的TF文件中不存在或者目标端返回的TF文件大小大于源端相同TF文件序号的文件大小,则协商失败,反之则协商TF文件序号成功。5.如权利要求4所述的一种ORACLE数据库一对多协商复制断点的方法,其特征在于,步骤S1还包括:...

【专利技术属性】
技术研发人员:李一铭高志会胡军擎周华
申请(专利权)人:上海英方软件股份有限公司
类型:发明
国别省市:

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

1