zoukankan      html  css  js  c++  java
  • 分库分布的几件小事(二)如何进行分库分表的数据迁移

    1.停机迁移方案

    这是最简单的也是最low的迁移方案了,如果系统就算短期停机也没有关系或者造不成多大的影响,可以选用此方案。

    首先停掉机器,将系统全都停掉,不要再有新的数据进来,然后使用之前写好的程序,连接旧的数据库,将旧数据库里面的数据读出来,然后通过数据分发中间件写到分库分好的数据里面去。然后修改系统是数据库连接、分库分表配置,然后重新上线。

    2.双写不停机迁移方案

    双写迁移方案的核心在双写,首先要修改系统所有需要写库的地方,将虽有对数据的写操作不但要写入就库,也要同时写入新库。

    然后使用写好的数据迁移程序,去读取老数据库的数据写入到新的数据库里面去,写的时候要根据数据的最后更新时间去判断数据,如果读出来的数据新库没有直接写入,如果新库也有,查看最后更新时间,旧库的新就覆盖写入,如果新库的新就放弃这条数据。

    导完一轮数据之后,有可能数据还是存在不一致,那么就写个程序做一轮校验,对比老库和新库的每条数据,如果存在不一样的,就针对这些不一样的,再次去进行数据同步。反复循环,直到数据完全一致。

    接着当数据完全一致了,就ok了,基于仅仅使用分库分表的最新代码,重新部署一次,不就仅仅基于分库分表在操作了么,还没有几个小时的停机时间,很稳。所以现在基本玩儿数据迁移之类的,都是这么干了。

  • 相关阅读:
    第二季-专题11-世界一下变大了-MMU
    第二季-专题10-C语言环境初始化
    第二季-专题9--代码搬移不可少
    第二季-专题8-不用内存怎么行
    第二季-专题6-点亮指路灯
    第二季-专题7-ARM跑快了---时钟初始化
    第二季-专题5-核心初始化
    第二季-专题4-我是bootloader设计师
    消除苹果系统对边框的优化
    css3
  • 原文地址:https://www.cnblogs.com/jack1995/p/10924517.html
Copyright © 2011-2022 走看看