订单分表分库方案

一.检查迁移原则:
1.开启新表查询逻辑时,不能出现新表与旧表数据及状态不一致。否则会有数据错误问题。
2.迁移并行期间,如果出现错误,要有预案
3.分阶段,小步迁移,做好开关,出现异常回退
4.数据对账,业务对账用于发现问题
5.启用新表查询逻辑后,根据旧的业务单查询要能查到。
在迁移时间点前的订单号是旧订单号,这里需要建立一个旧订单号与新订单号的映射表。
二.迁移流程
1.创建表,离线同步数据,新表上有个字段存储旧订单号。
这步需要将旧表的订单全部同步到新表,对应需要生成新的订单记录。
这步后,新表与旧表会相差一小部分增量进来的订单。后面需要补足。
2.上线新后台,双写阶段,旧表新表,一起写。记录下这个时间点。
这个阶段,新写入的订单需要新旧表一起写,对外还是以旧订单号。
这个阶段创建的订单,能够保证状态都是一致的,更新也是新旧订单一起写,一个事务。
在做补偿时,如果发现旧表有订单,则记录error log,这时暂时不处理。这部分订单就是在上线第2步时产生的增量数据。
不会很多。
补偿时,如果发现新表也有订单,则成功补偿后,一个事务更新。
这步出现异常,可以回退版本。
3.每天检查新旧表数据量是否相同,并且新旧表的记录是否一致。包含状态一致。有异常的,需要介入处理。
检查旧表存在,新表没有的,需要在新表生成新订单。
4.运行一周,然后检查在第2步【上线新后后,双写阶段】之前的订单新旧表是否一致。
这里,如果存在不是终态的,如果也没在新表里,在之后启用新表后查询会有问题。通常未完成订单需要补单。
5.都没问题后,某个业务的新表查询,这部分主要拿一个相对不重要的业务做试点,试运行二周.
这步相当于这个试点业务,已经完全采用新表逻辑了,因为新旧表是双写,这里新表查询也开启了。
这步如果发现有异常,则将新表查询回退到旧表查询,用开关控制,对应需要看具体异常具体处理。
6.试点业务运行正常,则开启另外几个业务。试运行四周。
出现异常,如果发现新表查询这个逻辑有问题,需要回退到旧表查询,用开关控制。
7.所有都运行正常,相当于新表查询已经对全业务开启。运行二个月,然后之后没问题再停止旧表的写入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值