数据迁移(Oracle迁移到mysql)

项目要求将Oracle中数据迁移到mysql中,采用dataX,mysql的存储过程实现的。

数据结构:

数据源层(Oracle)

备份层(mysql)

映射层(mysql)

项目实际可操作性:数据库备份,回退脚本,数据验证

主要内容:

第一次上线:

       1.远程操作安装dataX,需要配置conf来确定日志通过时间目录划分表名作为每张表的文件名。

       2.通过dataX将Oracle数据传输到mysql中,传输两种形式的数据,第一种全量数据直接导入,第二种是根据任务号字段的枚举值标记已完成的和该任务相应时间字段在dataX写入过滤条件实施传输。

        3.对mysql进行备份,防止第二次上线用dataX进行传输时无法回退。

第二次上线:

        1.仍然通过dataX将Oracle数据传输到mysql中,传输两种形式的数据,第一种是将两次上线之间时间段完成的任务号导入到mysql中,第二种整个Oracle库中未完成的任务数据进行传输。

        2.上述过程将整个Oracle数据传输至被备份层中,接下来是实现字段映射,新的系统中是在原有老系统中添加不少新功能,所以字段映射分为两种,一种是原表全字段映射,一种是多表部分字段映射到一张表中。这个过程中采取的是mysql的存储过程实现,通过每个任务所属分公司,按分公司分批次调用。所以,此时存在第一次调用某个分公司,再调用另一个分公司出错,必须要有回退脚本,回退脚本有两种方式,一种写一个存储过程来根据分公司删除其中数据,通过调用这个存储过程输入分公司实现,第二种在执行分公司调用脚本时,前面加入关闭事务,结束时加入打开事务。

        3.在上述存储过程中植入了,每张表的映射来源,字段名,哪几张张表,映射前后的数据条数,用来验证映射前后是否出现数据丢失。

      4.随机验证脚本,随机抽取每张新表是三条数据,通过任务号对比映射前后数据值是否一致。

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值