[发明专利]一种基于日志解析同步的大对象初始化方法与装置有效
申请号: | 202011457854.4 | 申请日: | 2020-12-13 |
公开(公告)号: | CN112559629B | 公开(公告)日: | 2022-08-26 |
发明(设计)人: | 孙峰;彭青松;余院兰 | 申请(专利权)人: | 武汉达梦数据库股份有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/2458;G06F16/22 |
代理公司: | 深圳市六加知识产权代理有限公司 44372 | 代理人: | 向彬 |
地址: | 430000 湖北省武汉市东湖新技术开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 日志 解析 同步 对象 初始化 方法 装置 | ||
1.一种基于日志解析同步的大对象初始化方法,其特征在于,包括:
源端数据同步系统全列查询包含有大对象数据的待初始化表,并根据查询结果标识所述待初始化表中的大对象列和非大对象列;
将所述待初始化表中的非大对象列数据以多行批量方式初始化到目的端数据库,并采用ROWID保存源端数据库和目的端数据库数据行之间的映射关系;
源端数据同步系统在确认所述待初始化表中的非大对象列数据在目的端数据库完成初始化后,开启所述待初始化表的日志捕获以便同步该表的操作;
根据保存的ROWID信息,将所述待初始化表中的大对象列数据以分段并行的方式补充初始化到目的端数据库。
2.根据权利要求1所述的基于日志解析同步的大对象初始化方法,其特征在于,所述将所述待初始化表中的非大对象列数据以多行批量方式初始化到目的端数据库,并采用ROWID保存源端数据库和目的端数据库数据行之间的映射关系,具体为:
在源端对查询到的结果集数据进行提取,将当前结果集游标所在行中的非大对象列数据以及大对象列中的行内数据和NULL值发送到目的端同步系统;
判断当前结果集游标所在行的大对象列中是否存在行外数据,如果存在,则将该行数据在源端数据库对应的源ROWID值存入源端的辅助表A中;
当发送的数据行数量达到预设阈值时,构造入库执行消息并发送到目的端数据同步系统,同时将结果集游标移动至结果集的下一行;
目的端数据同步系统接收到入库请求后对数据行进行批量入库操作,并获取该行数据在目的端数据库对应的目的ROWID值,然后将该行数据对应的源ROWID值和目的ROWID值以映射形式存入目的端的辅助表B中。
3.根据权利要求2所述的基于日志解析同步的大对象初始化方法,其特征在于,所述辅助表A中包含S_RID列,所述辅助表B中包含S_RID列和D_RID列;其中,源端数据库对应的源ROWID值存入到S_RID列,目的端数据库对应的目的ROWID值存入到D_RID列。
4.根据权利要求2所述的基于日志解析同步的大对象初始化方法,其特征在于,所述将当前结果集游标所在行中的非大对象列数据以及大对象列中的行内数据和NULL值发送到目的端同步系统,具体为:
提取当前结果集游标所在行中的每个非大对象列数据;
对于当前结果集游标所在行中的每个大对象列数据,如果大对象列数据为行内数据或NULL值,则提取该大对象列数据;如果大对象列数据为行外数据,则以NULL值替代该大对象列数据并提取NULL值;
将提取到的非大对象列数据以及大对象列中的行内数据和NULL值发送到目的端同步系统。
5.根据权利要求4所述的基于日志解析同步的大对象初始化方法,其特征在于,对于当前结果集游标所在行中的每个大对象列数据,行内数据或行外数据的判断方法具体为:
获取对应的大对象列数据长度,并比较所述大对象列数据长度与大对象行内数据最大长度的大小关系;
如果所述大对象列数据长度小于等于所述大对象行内数据最大长度,则对应的大对象列数据为行内数据;否则为行外数据。
6.根据权利要求2所述的基于日志解析同步的大对象初始化方法,其特征在于,所述根据保存的ROWID信息,将所述待初始化表中的大对象列数据以分段并行的方式补充初始化到目的端数据库,具体为:
在源端创建X个大对象查询线程,将所述辅助表A中的源ROWID值以Y个为一组分派给一个大对象查询线程,直至分派完成;
每个大对象查询线程利用对应的Y个源ROWID值查询对应的大对象列数据,并判断查询到的每个大对象列数据是否为行内数据或NULL值;
如果大对象列数据不是行内数据或NULL值,则提取该大对象列数据,并结合所在行的源ROWID值构造一个更新操作发送到目的端数据同步系统;
目的端数据同步系统在接收到更新操作后获取对应的源ROWID值,并在所述辅助表B中根据映射关系查询对应的目的ROWID值,然后根据该目的ROWID值执行对应大对象列数据的更新。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉达梦数据库股份有限公司,未经武汉达梦数据库股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011457854.4/1.html,转载请声明来源钻瓜专利网。