回答
当我们完成数据迁移且数据校验没什么问题的时候,我们就开始切流了。为什么是切流,而不是一把切呢?因为我们无法保证新系统就一定是没有问题的,如果有问题的话,直接上线新系统关闭老系统这样的操作会带来史诗级灾难。
所以,为了避免你年底背绩效,你需要灰度、按流慢慢来切换到新系统。
第一步:切流测试
如果线上有流量录制功能,我们可以在线上采集一些流量,然后将新库数据 dump 到准生产环境(或者独立的测试环境),进行回放。回放完成后,我们需要进行数据验证,待数据验证无误后,准备发布上线。
第二步:二次校验
条件允许的情况下,为了安全起见,在正式切流之前,我们可以进行二次校验,这次校验最好是全量,如果二次校验发现还有数据差异,则需要排查下问题,同时延后切流。
第三步:开启双写切流
在系统低流量阶段(一般都是凌晨),找准时机,放入很小一部分写流量到新库,比如 10 笔交易,观察日志,数据校验。在双写切流时,可以暂时关闭 binlog 日志同步,主要是为了观察这部分新流量数据的正确性。