案例
订单系统中存在这样一组订单表:
数据库: MySQL
表名: order_{0~19}, 其中{0~19}为后缀, 合共20张表....新分表策略
迁移方案分析
数据迁移的方案从业务层到数据库层各有不同的迁移方案, 我们先列举一些进行比对:
业务层: 在业务层进行硬编码, 数据双写, 以某个时间点进行划分, 新产生的数据同时写入新表,...数据库日志: 从某一时间点T备份数据库, 将备份库的数据迁移至新表, 从时间点T读取日志, 恢复到新表, 并持续写入. 待两份数据保持同步后, 上线新代码....伪装从库: 相对于方案4的优势是不需要直接去读取日志, 解决了数据库在云上不方便直接读取日志的问题....相比较之下, 方案4和5都是可选的, 因数据库在云上, 直接读取日志不方便, 且方案5有成熟的开源中间件canal可用, 故笔者选择了方案5.