【技术实现步骤摘要】
本专利技术涉及计算机领域,尤指一种数据同步方法及装置。
技术介绍
在大型的电子商务网站中,经常要从数据仓库中同步计算好的数据到前台的联机事务处理(On-Line Transaction Processing,OLTP)的甲骨文ORACLE数据库中,以供前台的应用服务器查询。ORACLE数据库中包括一个撤销/回滚表空间(undo tablespace),当一个会话对数据库进行数据操作语言(Data Manipulation Language,DML)的更新和删除(Update and Delete)操作时,会把影响数据行的原始数据迁到另外一个地方存起来,这个地方就是撤销/回滚表空间。在此会话没有提交(Commit)之前,其它会话访问这些数据行时,发现数据已被修改,但没有被提交,根据存储的撤销/回滚地址信息,可以到撤销/回滚表空间中去获取原始数据,但在此会话没有提交前或回滚完成前,所占用的回滚段是不会释放的。目前常用的同步数据的方法,其同步的体系结构如图1所示。图1中,t1表为前台OLTP ORACLE数据库中的一张表;数据仓库DW(data warehouse)为后台的数据仓库,上层服务器(Application)从t1表中获取数据。同步数据的逻辑如下(以下命令都在前台数据库执行):第一步:删除用户表t1表中的数据(delete from schemal.tablename),将删除的数据暂时放到撤销/回滚表空间中。第二步:从(后台数据仓库的)用户表t2表中获取数据插入到用户表t1表中(insert into schemal.tablename selec ...
【技术保护点】
一种数据同步方法,其特征在于,包括:预先建立与一张存储有待同步数据的源数据表对应的两张目标数据表,当从所述源数据表向所述目标数据表中同步数据时,执行下列步骤: 从所述两张目标数据表中确定出一张当前目标数据表; 从所述源数据表向所 述当前目标数据表中同步数据; 同步数据完成后,应用服务器转向访问所述当前目标数据表。
【技术特征摘要】
1、一种数据同步方法,其特征在于,包括:预先建立与一张存储有待同步数据的源数据表对应的两张目标数据表,当从所述源数据表向所述目标数据表中同步数据时,执行下列步骤:从所述两张目标数据表中确定出一张当前目标数据表;从所述源数据表向所述当前目标数据表中同步数据;同步数据完成后,应用服务器转向访问所述当前目标数据表。2、如权利要求1所述的方法,其特征在于,所述应用服务器通过预先建立的上层视图访问所述上层视图指向的一张目标数据表;所述应用服务器转向访问所述当前目标数据表,具体包括:更新预先建立的上层视图,使其指向所述当前目标数据表。3、如权利要求1所述的方法,其特征在于,所述从所述两张目标数据表中确定出一张为当前目标数据表,包括:分别计算所述两张目标数据表中数据的记录数;确定所述记录数为零的一张目标数据表为所述当前目标数据表。4、如权利要求1所述的方法,其特征在于,所述从所述源数据表向所述当前目标数据表中同步数据时,包括:直接向确定出的所述当前目标数据表中同步数据;或删除确定出的所述当前目标数据表,并创建一张新的目标数据表作为当前目标数据表,向新创建的当前目标数据表中同步数据。5、如权利要求1所述的方法,其特征在于,所述从所述源数据表向所述当前目标数据表中同步数据,具体包括:确定所述源数据表中待同步数据所占用的若干存储区域;确定出每一个所述存储区域中待同步数据的存储地址信息;根据所述存储地址信息,分别将所述存储区域中的待同步数据同步到所述当前目标数据表中。6、如权利要求5所述的方法,其特征在于,所述根据所述存储地址信息,分别将所述存储区域中的待同步数据同步到所述当前目标数据表中,具体包括:根据所述存储地址信息,由一个数据同步进程依次同步每一个所述存储区域中的数据到所述当前目标数据表中;或将所述存储区域分为N组,并启动对应的N个数据同步进程;并根据所述存储地址信息,由每个数据同步进程依次同步对应组中的各个所述存储区域中的数据到所述当前目标数据表中。7、如权利要求5所述的方法,其特征在于,还包括:当同步某一个所述存储区域中的数据失败时,重新启动同步该存储区域中的数据的过程;当重新启动的次数超过设定阈值时,结束同步该存储区域内的数据的过程。8、如权利要求1-7任一所述的方法,其特征在于,还包括:同步数据成功后,清空所述两张目标数据表中未同步数据的另一张目标数据表。9、一种数据同步装置,其特征在于,包括:数据表建立模块,用于预先建立与一张存储有待同步数据的源数据表对应的两张目标数据表;确定模块,用于从所述两张目标数据表中确定出一张当前目标数据表;数据同步模块,用于从所述源数据表向所述当前目标数据表中同步数据;访问更新模块,用于当同步数据完成后,应用服务器转向访问所述当前目标数据表。10、如权利要求9所述的装置,其特征在于,所述访问更新模块,具体用于:预先建立上层视图,使应用服务器能通过所述上层视图访问其指向的一张目标数据表;当同步数据完成后,更新所述上层视图,使其指向所述当前目标数据表。11、如权利要求9所述的装置,其特征在于,所述确定模块包括:计算单元,用于分别计算所述两张目标数据表中数据的记录数;确定单元,用于确定所述计算单元计算出的记录数为零的一张目标数据表为所述当前目标数据表。12、如权利要求11所述的装置,其特征在于,所述确定单元,还用于当所述计算单元计算出的所述两张目标数据表中数据的记录数均不为零时,显示异常,并结束数据同步流程。13、如权利要求9所述的装置,其特征在于,所述数据同步模块包括:存储区域确定单元,用于确定所述源数据表中待同步数据所占用的若干存储区域;地址信息确定单元,用于确定出每一个所述存储区域中待同步数据的存储地址信息;数据同步单元,用于根据所述地址信息确定单元确定出的存储地址信息,分别将所述存储区...
【专利技术属性】
技术研发人员:赵林,汪海,张清,张依娜,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:VG[英属维尔京群岛]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。