【技术实现步骤摘要】
本公开内容总体上涉及计算机系统,并且更具体地涉及数据库管理系统中的数据复制。
技术介绍
存在各种类型的数据管理系统(DBMS),这些DBMS通常为高效地执行一些特定种类的数据库查询而进行优化。所述专用DBMS可以能够高效地处理第一类型的数据库查询,但是在处理另一类型的数据库查询时可能是缓慢的,这是因为由DBMS管理的数据库的表结构和索引没有针对所述另一类型的查询而进行优化。例如,OLAP数据库可以高效地处理OLAP查询,但是不能高效地处理OLTP查询。OLTP数据库可以高效地处理OLTP查询,但是不能高效地处理OLAP查询。一些(基于例如混合DBMS的)现有方法试图通过将数据冗余地存储在要被查询的数据的两个不同的副本中来克服所述困难。每个副本被存储在数据库中,该数据库可以为高效地执行特定种类的数据库查询而进行优化。除了所述OLTP/OLAP情形,存在其他的使用案例,在其他的使用案例中,例如在云环境的背景下,数据被冗余地存储在具有相同或不同的结构的多个数据库中。与将相同数据的多个副本存储在多个数据库中相关联的问题在于应用在所述副本中的一个副本中的数据变化需要被复制到另一副本。在成功执行所述复制之前,所述两个副本没有同步并且响应于数据库查询而返回不同结果。数据同步协议(诸如“两阶段提交协议”(2PC))协调参与到关于是否将已经在所述两个副本中的一个副本中执行的事 ...
【技术保护点】
一种用于操作数据库管理系统的计算机实现的方法,所述数据库管理系统包括源数据库和目标数据库,所述源数据库包括分别包含一个或多个第一列的多个第一表,所述目标数据库包括分别包含一个或多个第二列的多个第二表,其中所述第一列中的多个第一列中的每个第一列被映射到所述第二列中的一个第二列,所述第二列中的每个第二列适于存储被映射到所述第二列的所述第一列的复制的数据变化,其中所述第二列中的每个第二列具有分配的更新时间,所述更新时间为所述第二列从其映射的第一列最近接收增量数据变化的时刻,所述方法包括:所述数据库管理系统接收一条执行所请求的语句的请求,所述语句为数据库语句;所述数据库管理系统预测在处理所述请求的语句时将被访问的所述第二列中的一个或多个第二列;所述数据库管理系统针对预测的所述第二列中的每个第二列确定其分配的更新时间;所述数据库管理系统标识同步点时间,所述同步点时间为所有确定的所述更新时间中的最近更新时间;所述数据库管理系统标识开始时间,所述开始时间为所有确定的所述更新时间中的最早更新时间;基于所标识的开始时间不同于所标识的同步点时间,所述数据库管理系统从被映射到预测的所述第二列中的任何一个第二 ...
【技术特征摘要】
2015.01.08 US 14/592,1651.一种用于操作数据库管理系统的计算机实现的方法,所述数据库
管理系统包括源数据库和目标数据库,所述源数据库包括分别包含一个
或多个第一列的多个第一表,所述目标数据库包括分别包含一个或多个
第二列的多个第二表,
其中所述第一列中的多个第一列中的每个第一列被映射到所述第
二列中的一个第二列,所述第二列中的每个第二列适于存储被映射到所
述第二列的所述第一列的复制的数据变化,
其中所述第二列中的每个第二列具有分配的更新时间,所述更新时
间为所述第二列从其映射的第一列最近接收增量数据变化的时刻,
所述方法包括:
所述数据库管理系统接收一条执行所请求的语句的请求,所述语句
为数据库语句;
所述数据库管理系统预测在处理所述请求的语句时将被访问的所
述第二列中的一个或多个第二列;
所述数据库管理系统针对预测的所述第二列中的每个第二列确定
其分配的更新时间;
所述数据库管理系统标识同步点时间,所述同步点时间为所有确定
的所述更新时间中的最近更新时间;
所述数据库管理系统标识开始时间,所述开始时间为所有确定的所
述更新时间中的最早更新时间;
基于所标识的开始时间不同于所标识的同步点时间,所述数据库管
理系统从被映射到预测的所述第二列中的任何一个第二列的所有第一
列向预测的所述第二列选择性地并且增量地复制数据变化,使得在所述
开始时间与所述同步点时间之间被施加在所述第一列上的所有数据变
化被复制到预测的所述第二列;其中在所述复制之后,预测的所述第二
列中的每个第二列的所述更新时间被设置为所述同步点时间;
所述数据库管理系统延迟执行所述请求的语句直到所述复制的成
功终止;以及
在所述成功终止之后,所述数据库管理系统在所述目标数据库中执
行所述请求的语句。
2.根据权利要求1所述的计算机实现的方法,其中预测所述一个或
多个第二列包括以下各项中的一项:
自动地对所述请求的语句进行解析并使用在所述请求的语句中引
用的所有第二列作为预测的所述第二列;和
自动地评价请求历史,所述请求历史指示在处理所请求的语句时先
前已经被访问的所述目标数据库的所有表和列,所述评价包括标识或计
算访问统计,所述访问统计指示所述目标数据库中的所述第二列中的每
个第二列或所述第二表中的每个第二表的访问频率。
3.根据权利要求1所述的计算机实现的方法,
其中在每个第二表的基础上向所述第二列分配所述更新时间,并且
其中在所述第二表中的相同的第二表中所包含的所有第二表的更新时
间是相同的;
其中预测所述一个或多个第二列包括:预测在处理所述请求的语句
时将被访问的一个或多个第二表并且使用在预测的所述第二表中所包
含的所有第二列作为预测的所述第二列;
其中确定所述第二列的所述更新时间包括:确定被分配给包括所述
第二列的所述第二表的所述更新时间,并且使用确定的所述更新时间作
为被分配给所述第二列的所述更新时间;以及
其中执行所述复制包括:从被映射到在预测的所述第二表中的任何
一个第二表中所包含的所述第二列中的任何一个第二列的所有第一列
向它们映射的第二列复制所述数据变化,使得在所述开始时间与所述同
步点时间之间被施加在所述第一列上的所有数据变化被复制到预测的
所述第二表;其中在所述复制之后,预测的所述第二表中的每个第二表
的所述更新时间被设置为所述同步点时间。
4.根据权利要求1所述的计算机实现的方法,
其中所述源数据库具有分配的源日志并且所述目标数据库具有分
配的目标日志;
其中所述更新时间以所述源日志的日志序列号的形式或以所述目
标日志的日志序列号的形式被分配到所述第二列中的每个第二列,其中
所述源日志和所述目标日志是同步的;并且
其中执行选择性且增量的复制包括针对预测的所述第二列中的每
个第二列,包括:
标识指示当前被分配给所述第二列的所述更新时间的开始日志序
列号;
标识指示所标识的同步点时间的结束日志序列号;
标识被映射到预测的所述第二列中的一个第二列的所有第一列;
在所述源日志中标识在所述开始日志序列号与所述结束日志序列
号之间的、在所述第一列中的任何一个第一列上执行的所有写入语句;
标识在所标识的写入语句内被应用在所标识的第一列上的所有数
据变化;以及
选择性地将在所标识的第一列中的所标识的变化应用到被映射到
所述第一列的所述第二列。
5.根据权利要求4所述的计算机实现的方法,还包括:
所述数据库管理系统在所述源日志中标识当前源提交日志序列号,
所述当前源提交日志序列号指示在接收所述请求之前在所述源数据库
中最近提交的事务中的第一事务的提交事件,
其中执行对所述数据变化的所述增量复制包括:标识直到所述同步
点时间的被施加在所述第一列上的未复制的数据变化,所述未复制的数
据变化是由在所述当前源提交日志序列号处或之前的已经在所述源数
据库中提交的事务施加的;并且选择性地复制所标识的数据变化。
6.根据权利要求1所述的计算机实现的方法,其中所述请求的语句
是由所述数据库管理系统在预定义的第一时间间隔期间接收的多个所
请求的语句中的一个语句,并且所述方法还包括:
所述数据库管理系统针对所述多个请求的语句中的每个语句执行
对所述第二列中的所述一个或多个第二列的预测;以及
所述数据库管理系统根据针对所述多个请求的语句所预测的所有
第二列来生成预测的第二列的唯一集合,并且使用第二列的所述唯一集
合作为所述一个或多个预测的第二列以执行对所述同步点时间的所述
标识。
7.根据权利要求1所述的计算机实现的方法,其中响应于接收到用
于执行所述请求的语句的所述请求而对多个第一列中的所述数据变化
到被映射到所述第一列的第二列的所述增量复制,所述增量复制被执行
在一个或多个批处理中,并且其中,另外,多个第一列中的数据变化在
第二时间间隔处被自动地复制到被映射到所述第一列的第二列。
8.根据权利要求7所述的计算机实现的方法,还包括:
对所述一个或多个批处理进行编译,每个批处理包括已经在所述源
数据库中被执行的并且还没有被复制到所述目标数据库并且被指向所
述第一列中的一个第一列的一个或多个事务的语句,所述第一列中的所
述一个第一列的映射的第二列被预测为在处理所述请求的语句时要被
访问;
将每个批处理的所述语句分组成一个或多个提交组,其中所述提交
组中的任何提交组中所包含的所有语句属于已经在所述源数据库中提
交的相同事务,其中所述提交组不包括非提交的事务的语句;
复制所述批处理,从而在单个步骤中将由所述批处理中的一个或多
个提交组中的所述语句施加的所有数据变化复制到所述目标数据库;以
及
在已经成功地复制所述批处理之后,将被分配给每个第二列的所述
更新时间更新为所述同步点时间。
9.根据权利要求8所述的计算机实现的方法,还包括针对所述目标
数据库的每个第二列:
自动地评价所述第二列的请求历史,所述请求历史指示在第二时间
间隔期间先前已经接收的请求的并且其处理包括访问所述第二列的语
句的数目;
自动地计算针对所述第二列的批处理大小,从而使用所述第二列的
所述请求历史作为输入,所述批处理大小指示在单独的批处理内的语句
的最大可允许数目或最大批处理大小,其中所述计算使得所述最大可允
许数目或所述最大批处理大小与所述第二列的访问频率负相关;并且
执行所述编译、所述分组、所述复制和所述更新,其中根据所述自
动计算的批处理大小来执行创建所述批处理,并且其中复制所述批处理
还包括更新被分配给所述第二列的所述更新时间。
10.根据权利要求9所述的计算机实现的方法,其中所述一个或多
个批处理是具有不同批处理大小的多个批处理,其中在所述第二时间间
隔中的一个第二时间间隔期间,在所述多个批处理中将尚未复制的数据
变化包含在所述第一列中包括:
针对变化被包含的每个第一列:评价所述目标日志,以标识针对所
述第一列中的每个第一列的访问频率,所述访问频率指示响应于先前请
求而访问被映射到所述第一列的所述第二列中的所述一个第二列的所
述频率;以及
将用于复制尚未复制的数据的语句分发到批处理的序列,
其中其映射的第二列具有最高访问频率的第一列的数据变化被分
发到具有最小批处理大小的多个批处理中的一个批处理,以及
其中其映射的第二列具有最低访问频率的第一列的数据变化被分
发到具有最大批处理大小的多个批处理中的一个批处理。
11.根据权利要求1所述的计算机实现的方法,还包括:
在第三时间间隔处定期地评价所述第一列中的每个第一列,以确定
所述第一列是否包括任何新的未复制的数据变化;以及
如果评价的所述第一列中的一个第一列不包括任何新的未复制的
数据变化,将被映射到所述第一列的所述第二列中的一个第二列的...
【专利技术属性】
技术研发人员:N·赫尔,D·马丁,C·莫汉,S·K·萨林,J·D·斯派克,姚永丰,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。