作者:v木易杨_920 | 来源:互联网 | 2023-06-30 17:28
本篇来聊一聊数据库无缝迁移的方案,为什么要聊数据库无缝迁移方案呢?因为在企业的发展过程中,随着数据量的增长,我们肯定会遇到需要迁移数据的场景。比如,单机型数据库到NoSQL,然后在到NewSQL,当我们的系统已经上线了,我们不可能停机来迁移数据,所以数据库无缝迁移方案值得好好说一说。我们存储在数据库中的数据大致可以分为两类:
什么是时效性数据?例如,饿了么的优惠券,滴滴出行的免费骑车券。对应的永久性数据就是一些日常数据,例如,订单信息,用户信息等等。
时效性数据的迁移方案比较简单,直接双写就可以了。我们以滴滴出行的7天免费骑车券为例:
假设我们的数据要从MySQL迁移到MongoDB,那么我们直接双写MySQL和MongoDB即可,写多久呢?时效性多久我们就写多久。双写完成后,原数据库中的数据就已经过期了,我们直接干掉,然后读写新数据库就行了。示意图如下:
时效性数据的迁移相对比较简单。接下来我们看看永久性数据的迁移,毕竟这一块数据是大头。
永久性数据的迁移稍微复杂点,我们需要引进一个中间存储(消息队列)。示意图如下:
首先我们把从库摘下来,然后将从库中的数据导入到MongoDB,同时数据双写到MySQL和消息队列。从库中的数据导入完成后,停止写入到MySQL,然后把消息队列中数据写入到MongoDB。示意图如下:
当将消息队列中的数据同步完成后就可以直接读写MongoDB了。
好的,那么关于数据库数据无缝迁移方案就讨论到这里。