一、停机停服数据迁移的概述
比如我们已经准备好某一天要进行数据迁移了,那么我会们在当天发布公告,比如通告一下用户,凌晨12点到早上6点系统升级,服务暂不可用。
但是,依然无法避免的就是,对用户的感受是不好的,毕竟系统无法使用了。那么,我们还有另一种迁移方案,即:双写方案。
二、双写数据迁移的概述
针对于停机停服数据迁移的劣势,我们可以在持久层做请求拦截,将写入、修改、删除操作修改为双写,即:对旧库和新库都要做CUD操作。那么,新的数据也就会在新库中存在一份。此时,开启数据迁移工具,将数据新增到新库中。当然,这种迁移不是没有约束的,我们会在根据业务表中的modify_time字段进行约束,即:只有小于某个modify_time的数据才可以进行迁移。
当然,这也无法保证新旧库中的数据完全一致,比如就是在数据迁移过程中,有旧的数据没有在新库中,但是被修改了。针对于这种情况,我们会开启第二遍的check操作,将第一遍数据迁移后的新旧库中数据再进行校验和补充修复。最终达到一致性。
本文介绍了两种数据迁移策略。一是停机停服迁移,通常在凌晨进行,但会影响用户体验。二是双写方案,通过在持久层拦截请求,同时更新旧库和新库,以减少服务中断。在迁移过程中,利用modify_time字段约束,进行多次校验和修复,确保数据一致性。
636

被折叠的 条评论
为什么被折叠?



