数据迁移

A.迁移方式

1.全量迁移

  • 全量数据导出和导入
    1、业务系统停机,
    2、数据库迁移,校验一致性,
    3、然后业务系统升级,接入新数据库。
    直接复制的话,可以 dump 后全量导入 (如果是)异构数据,需要用程序来处理
  • 优缺点
    1. 优点:非常简单粗暴
    2. 缺点:需要停机,对业务影响较大

2.全量+增量

  • 依赖于数据本身的时间戳
    1、先同步数据到最近的某个时间戳
    2、然后在发布升级时停机维护,
    3、再同步最后一段时间(通常是一天)的变化数据。
    4、最后升级业务系统,接入新数据库。
  • 优缺点
    1. 优点:非常简单粗暴
    2. 缺点:因为是不停机读,对主库的读压力较大

3.binlog+全量+增量

  • 通过主库或者从库的 binlog 来解析和重新构造数据,实现复制。
  • 一般需要中间件等工具的支持。 可以实现多线程,断点续传,全量历史和增量数据同步。比如把一个老数据库迁移到多个新数据库。
    继而可以做到:
    1、实现自定义复杂异构数据结构;
    2、实现自动扩容和缩容,比如分库分表到单库单表,单库单表到分库分表,分4个库表到分64个库表。
  • 优缺点
    1. 优点:好用,没压力
    2. 缺点:需要用中间件把新库设置成从库。