分库分表-首次上线-老数据-数据迁移

为什么要分库分表,分库分表的实践请看之前的文章:微服务-分库分表思路

分库分表之前我们首先要选出分片字段、然后根据一定的分片算法将数据写入不同的库表,查询数据的时候根据分片字段+分片算法从对应的库表中拿取数据即可

因此,由单独进行横向拆分后需要将老数据按照我们定义的,分片字段和分片算法重新洗数据,那么我们本节主要讲解3中方法:停机数据迁移、新老库双写、写老库通过binlog同步新库

一、上线前停服数据迁移

实践思路:

  1. 新建线上新库(按照分片键+分片算法新建)
  2. 编写数据同步程序(查询老库,然后按照分片算法迁移到新库)
  3. 在数据访问最少的时间段(比如半夜2点)停服务、开始跑我们的同步程序
  4. 数据同步完成后(要进行数据一致性校验,比如校验总数)上新代码,连接新库

优点:

  1. 数据一致性能得到保障
  2. 简单,没什么技术含量

缺点:

  1. 需要停服务(如果不停服务可能导致已经同步的数据在同步过程中有变更,导致数据不一致)
  2. 数据同步时间较长,出错率高
  3. 熬夜

题外话:最后一步一定要做数据校验,如果停服务的话一般校验数据总条数即可,如果同步过程中出现错误,一定要记录,否则数据矫正略麻烦;如果真的出现数据不一致的情况,提供一直校

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值