【技术实现步骤摘要】
一种基于日志解析同步的大对象初始化方法与装置
[0001]本专利技术涉及计算机
,尤其涉及一种基于日志解析同步的大对象初始化方法与装置。
技术介绍
[0002]目前基于数据库日志分析的异构数据库复制技术应用广泛,这种技术在源端捕获出数据库的增量数据然后发送到目的端,在目的端通过通用的数据库访问接口将增量数据应用到目的端数据库,实现数据复制。这种技术因为使用到通用数据库访问接口,因此支持异构数据库系统复制,支持异构操作系统环境,并且目的端备机数据库系统可读写,是一种“双活”系统。
[0003]在搭建数据同步系统时,目的端数据库往往是个空库,需要把源端数据库中的数据先初始化到目的端数据库后才能开启同步;如果源端数据库中的某个表数据量庞大,那该表的初始化时间会相当的长。由于在数据初始化的过程中源端数据库上的业务往往不停机,在支持多版本的数据库上,单个表长时间地提取结果集会造成提取时数据库报“快照过旧”的错误,造成初始化失败。所以,尽可能地缩短单个表初始化的速度是保障数据同步系统能否完成目的端数据库数据初始化的 ...
【技术保护点】
【技术特征摘要】
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所述的基于日志解析同步的大对象初始化方法,其特征在于,对于当前结果集游标所在行中的每个大对象列数据,行内数据或行外数据的判断方法具体为:获取对应的大对象列数据长度,并比较所述大对象列...
【专利技术属性】
技术研发人员:孙峰,付铨,彭青松,余院兰,
申请(专利权)人:武汉达梦数据库股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。