【技术实现步骤摘要】
一种基于日志解析同步的事务合并执行方法及装置
本专利技术涉及计算机
,尤其涉及一种基于日志解析同步的事务合并执行方法及装置。
技术介绍
传统的基于数据库自身的主备机制实现数据库数据的实时复制,是进行数据容灾备份、保障数据安全的重要解决方案。目前如ORACLE公司的DataGuard、达梦数据库的DM7主备产品等都是实现这种解决方案的成熟商业化产品。数据库主备机制下,一般备机作为备份节点,只提供只读访问,可以在备机上做一些报表分析、数据挖掘等只读访问的应用,而不能像主机一样提供读写访问。另外,数据库主备机制要求备机数据库系统和主机一致,对于异构数据库系统环境,则不能利用数据库自身的主备机制实现有效的数据实时复制。针对数据库主备机制实现数据复制的不足,目前基于软件的异构数据库复制技术应用广泛。这种技术在源端捕获出数据库的增量数据,然后发送到目标端,在目标端通过通用的数据库访问接口将增量数据应用到目标数据库,实现数据复制。这种技术因为使用到通用数据库接口,因此支持异构数据库系统复制,支持异构操作系统环境,并且 ...
【技术保护点】
1.一种基于日志解析同步的事务合并执行方法,其特征在于,包括:/n按照表ID将存在多个表操作的事务打散,并选择相同表ID的多个事务添加到待合并事务链表;/n按顺序依次从待合并事务链表取出各事务进行合并,且每合并一个事务,将该事务的提交LSN添加到已合并事务链表,将合并后生成的操作存放至操作容器;其中,当从待合并事务链表中取出第i个事务时,利用已合并事务链表中的i-1个提交LSN作为分割界限,在操作容器中划出i-1个操作区间;按顺序依次从所述第i个事务中取出操作,通过当前操作的LSN在操作容器中定位到相应的操作区间,并在相应的操作区间内找到与当前操作相同操作类型的操作位置,将 ...
【技术特征摘要】
1.一种基于日志解析同步的事务合并执行方法,其特征在于,包括:
按照表ID将存在多个表操作的事务打散,并选择相同表ID的多个事务添加到待合并事务链表;
按顺序依次从待合并事务链表取出各事务进行合并,且每合并一个事务,将该事务的提交LSN添加到已合并事务链表,将合并后生成的操作存放至操作容器;其中,当从待合并事务链表中取出第i个事务时,利用已合并事务链表中的i-1个提交LSN作为分割界限,在操作容器中划出i-1个操作区间;按顺序依次从所述第i个事务中取出操作,通过当前操作的LSN在操作容器中定位到相应的操作区间,并在相应的操作区间内找到与当前操作相同操作类型的操作位置,将当前操作插入至该位置;
完成各事务的合并后,从操作容器中按顺序提取操作执行;其中,夹在两个操作中间的提交操作忽略执行,相同的操作合并后批量执行;
其中,各操作按LSN的大小顺序发送至目的端,所述待合并事务链表与所述已合并事务链表中的对象按事务的提交LSN的大小顺序存放。
2.根据权利要求1所述的基于日志解析同步的事务合并执行方法,其特征在于,在所述选择相同表ID的多个事务添加到待合并事务链表之前,所述方法还包括:
源端数据库同步系统从源端数据库读取日志后,按捕获日志的顺序进行日志解析,并将解析以后的操作按顺序发送到目的端数据库同步系统;
目的端数据库同步系统接收到源端的操作后,按操作的事务ID和表ID进行分类管理,在接收到事务提交操作后将相同事务ID的事务添加到待执行事务链表;
其中,所述待执行事务链表中的事务按事务提交LSN的大小顺序存放。
3.根据权利要求2所述的基于日志解析同步的事务合并执行方法,其特征在于,所述选择相同表ID的多个事务添加到待合并事务链表,具体为:
执行线程从所述待执行链表中取出一个事务添加到所述待合并链表,根据该事务的表ID从所述待执行链表中选择相同表ID的事务,并将选出的有相同表ID的事务也添加到所述待合并链表中。
4.根据权利要求1所述的基于日志解析同步的事务合并执行方法,其特征在于,对于待合并事务链表中的任一事务A,合并过程具体包括:
从所述待合并事务链表中取出事务A,从所述已合并事务链表中取一个提交LSN,并将该提交LSN作为当前的分割LSN;
从事务A中取出一个操作,判断当前操作的操作类型是否是提交操作;如果是提交操作,则将该提交操作追加到操作容器,将对应的提交LSN添加到所述已合并事务链表,并按顺序继续从所述待合并事务链表中取出下一个事务;如果不是提交操作,则判断当前操作的LSN是否小于分割LSN。
5.根据权利要求4所述的基于日志解析同步的事务合并执行方法,其特征在于,合并过程中采用...
【专利技术属性】
技术研发人员:孙峰,付铨,黄海明,余院兰,
申请(专利权)人:武汉达梦数据库有限公司,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。