前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何平滑让系统从未分库分表动态切换到分库分表上?

如何平滑让系统从未分库分表动态切换到分库分表上?

作者头像
名字是乱打的
发布2021-12-24 08:54:12
4200
发布2021-12-24 08:54:12
举报
文章被收录于专栏:软件工程

在我们遇见其三年内不会有大数据量问题时候一般不会进行分库分表,那么数据一致都是单库单表的存在,我们由于种种压力需要分库分表了咋办?系统停机去迁移?这不可取,影响太大太久。那么咋能平滑迁移呢?

一.双写迁移

平滑迁移主要用到双写迁移方案,简单来说就是所有的DML语句在数据在数据完全迁移之前要同时进行新旧库操作;当然这里写的新库不是准确一个库的意思,而是代表我们的分库分表中间件,让他向我们的分库分表中间件进行DML。

二 注意事项

  • 1.在完全迁移完毕之前读库的时候我们走老库读
  • 2.我们写个数据迁移程序把老库的数据向新库迁移,跑起来读老库数据写新库,写的时候要根据一个最后更新时间,比如last_dttm这类字段判断这条数据最后修改的时间,除非是读出来的数据在新库里没有,或者是比新库的数据新才会写。
  • 3.接着导万一轮之后,有可能数据还是存在不一致,那么就程序自动做一轮校验,比对新老库每个表的每条数据,接着如果有不一样的,就针对那些不一样的,从老库读数据再次写。反复循环,直到两个库每个表的数据都完全一致为止。
  • 4.接着当数据完全一致了,就ok了,基于仅仅使用分库分表的最新代码,重新部署一次,如此就仅仅基于分库分表在操作了,还没有几个小时的停机时间,很稳。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/8/22 上,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.双写迁移
  • 二 注意事项
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档