数据迁移
A.迁移方式
1.全量迁移
- 全量数据导出和导入
1、业务系统停机,
2、数据库迁移,校验一致性,
3、然后业务系统升级,接入新数据库。
直接复制的话,可以 dump 后全量导入 (如果是)异构数据,需要用程序来处理 - 优缺点
- 优点:非常简单粗暴
- 缺点:需要停机,对业务影响较大
2.全量+增量
- 依赖于数据本身的时间戳
1、先同步数据到最近的某个时间戳
2、然后在发布升级时停机维护,
3、再同步最后一段时间(通常是一天)的变化数据。
4、最后升级业务系统,接入新数据库。 - 优缺点
- 优点:非常简单粗暴
- 缺点:因为是不停机读,对主库的读压力较大
3.binlog+全量+增量
- 通过主库或者从库的 binlog 来解析和重新构造数据,实现复制。
- 一般需要中间件等工具的支持。 可以实现多线程,断点续传,全量历史和增量数据同步。比如把一个老数据库迁移到多个新数据库。
继而可以做到:
1、实现自定义复杂异构数据结构;
2、实现自动扩容和缩容,比如分库分表到单库单表,单库单表到分库分表,分4个库表到分64个库表。 - 优缺点
- 优点:好用,没压力
- 缺点:需要用中间件把新库设置成从库。