涉及大量热数据迁移问题

问题: 以前公司遇到过一个问题,由于一些历史原因,需要将正在运行的系统中的数据从老数据库中迁移到新数据库中

此类问题比较特殊,也不是很常见,在此记录一下当时解决的思路

该问题的核心点在于 1.系统是正在运行的,也就是说数据不是死的而是随时在变动的 2.迁移的过程中不能影响到线上系统的运行和性能 

难点在于是线上数据的迁移 ,所以当时的思路是需要在某个节点将数据分类,分为冷热两种数据

具体做法:在某个时间节点在线上系统上布置一层缓存层,在这个时间节点之后的业务处理数据都会写入这个缓存层,这个时间节点非常重要,需要记录下来。在这个时间节点之前的数据就是冷数据,不会改变,这之后的数据作为热数据.

针对冷数据的处理相对简单,难点只是在于数据量,当时系统的冷数据在几千万左右,如果正常按照单进程运行,可能比较慢,所以采用的是多进程跑,这个多进程的做法,如果数据量不大,完全可以采用单进程处理,方法不做赘述,多进程的话,需要做好IPC处理

针对热数据的处理,首先在于热数据以什么形式保存最为重要,如果单纯以数据格式处理,数据的增删改都需要去热数据缓存层做修改,最早版本也是这么做的,非常麻烦(还会影响线上系统的性能),后面发现将热数据以sql形式保存下来,迁移的时候就会非常方便,需要记录下来

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容