【工作笔记】一次通过代码数据迁移填坑记

1背景

A表数据需要迁移到B表, 表字段有新增修改,并且一条A记录可能会对应多条B记录。两个表都有名称和对应的编码(每次新增新生成),如果B表已存在此名称,则不同步。

2迁移方案

 分页查询A表(A表主键排序),并根据相关条件封装好B表数据,并同步插入。

3问题描述原因

1由于此次发布,B表依赖涉及到一个监听的mq会全量推数据,两方未及时沟通。需要A B表同步完数据,上游MQ才能推送。

2A表同步B表数据期间,有用户操作新增(以为凌晨2点不会有人操作),导致A表老数据不能同步。同一个名称 在A  B表对应不同的编码,导致其他业务表引用编码有新的 旧的,旧的不能正常展示。

3未考虑到A表本来有一批脏数据。

4解决方案

1找出A  B表 两边编码不一样,名称一样的记录。

2B表以旧的编码为准,新的编码标识改为已删除。已应用新编码的业务表记录改为对应的旧编码。

3清缓存 

4推搜索

5再次查询确认是否存在A  B表 两边编码不一样,名称一样的记录。 

5总结

经过这次数据迁移出现的问题,根本原因在于自己考虑场景不全,上下游沟通不到位导致,同时应该对现有线上数据进行分析。系统需要设计个开关及公告,需要数据迁移时提前几天通知用户,数据迁移时并禁用相关功能。

惭愧不已,特意记录下来。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值