[发明专利]一种基于Oracle数据库的在线数据迁移方法有效
申请号: | 200710088681.1 | 申请日: | 2007-03-15 |
公开(公告)号: | CN101266606A | 公开(公告)日: | 2008-09-17 |
发明(设计)人: | 陈吉平 | 申请(专利权)人: | 阿里巴巴公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 中国专利代理(香港)有限公司 | 代理人: | 李湘;刘宗杰 |
地址: | 英属开曼群岛大开曼*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 oracle 数据库 在线 数据 迁移 方法 | ||
1.一种基于Oracle数据库的在线数据迁移方法,其特征在于,该方法采用下 列步骤实现:
(1)依照预定的容量大小对表对象进行分级,将超过所述预定容量的表对象作 为大表,将低于所述预定容量的表对象作为小表;
(2)将所述大表作为源表,在源数据库上创建物化视图日志;
(3)在目标数据库上创建与所述源表的结构相同的目标表,并在所述目标表上 采用prebuilt方式创建物化视图;
(4)对同步日志进行完全刷新;
(5)对所述同步日志进行增量刷新;
(6)创建可实现自动增量刷新的程序代码;
(7)按上述步骤(2)-(6)依次处理所有的大表;
(8)对采用insert/*+append*/into...from db_link处理的小表,整理好insert into的脚本;
(9)运行所述的insert into脚本,对所述小表进行数据迁移;以及
(10)迁移切换。
2.如权利要求1所述的方法,其特征在于,在执行步骤(3)时,所述源表的结 构在所述日志创建完成之后且在迁移数据的复制完成之前保持不变。
3.如权利要求1所述的方法,其特征在于,所述完全刷新仅在第一次同步所述 日志时执行。
4.一种基于Oracle数据库的在线数据迁移方法,其特征在于,该方法采用下 列步骤实现:
(1)依照预定的容量大小对表对象进行分级,将超过所述预定容量的表对象作 为大表,将低于所述预定容量的表对象作为小表;
(2)将所述大表作为源表,在所述源表上创建数据操纵语言的触发器;
(3)在目标数据库上创建与所述源表结构相同的目标表;
(4)所述触发器开始工作后,分批载入所述源表中的数据至所述目标数据库的 所述目标表中;
(5)在所述目标数据库上创建用户自定义的过程;
(6)完全刷新由所述触发器产生的同步日志;
(7)对所述同步日志进行增量刷新;以及
(8)迁移切换,
其中,创建所述用户自定义的过程可以同步由所述触发器产生的所述数据操纵 语言的操作日志。
5.如权利要求4所述的方法,其特征在于,在执行步骤(1)时,对低于所述预 定容量的表对象,采用insert/*+append*/into...from db_link进行数据迁移。
6.如权利要求4所述的方法,其特征在于,所述日志的REP_KEY用于存放所 述源表的主键,字段类型取决于所述源表的字段类型。
7.如权利要求4所述的方法,其特征在于,在执行步骤(3)时,所述源表的结 构在所述触发器创建完成之后且在迁移数据的复制完成之前保持不变。
8.如权利要求4所述的方法,其特征在于,所述触发器可以记录所述源表的数 据操纵语言的操作日志。
9.一种基于Oracle数据库的在线数据迁移方法,其特征在于,该方法采用下 列步骤实现:
(1)依照预定的容量大小对表对象进行分级,将超过所述预定容量的表对象作 为大表,将低于所述预定容量的表对象作为小表;
(2)将所述大表作为源表,在所述源表上创建数据操纵语言的触发器;
(3)在目标数据库上创建与所述源表结构相同的目标表;
(4)所述触发器开始工作后,分批载入所述源表中的数据至所述目标数据库的所 述目标表中;
(5)在中间层利用两个进程分别连接不同字符集的数据库;
(6)完全刷新由所述触发器产生的同步日志;
(7)对所述同步日志进行增量刷新;以及
(8)迁移切换。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴公司,未经阿里巴巴公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710088681.1/1.html,转载请声明来源钻瓜专利网。