问题

现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?

分析

你看看,你现在已经明白为啥要分库分表了,你也知道常用的分库分表中间件了,你也设计好你们如何分库分表的方案了(水平拆分、垂直拆分、分表),那问题来了,你接下来该怎么把你那个单库单表的系统给迁移到分库分表上去?

所以这都是一环扣一环的,就是看你有没有全流程经历过这个过程。

这个其实从 low 到高大上有好几种方案,我们都玩儿过,我都给你说一下。

停机迁移方案

我先给你说一个最 low 的方案,就是很简单,大家伙儿凌晨 12 点开始运维,网站或者 app 挂个公告,说 0 点到早上 6 点进行运维,无法访问。

接着到 0 点停机,系统停掉,没有流量写入了,此时老的单库单表数据库静止了。然后你之前得写好一个导数的一次性工具,此时直接跑起来,然后将单库单表的数据哗哗哗读出来,写到分库分表里面去。

导数完了之后,就 ok 了,修改系统的数据库连接配置啥的,包括可能代码和 SQL 也许有修改,那你就用最新的代码,然后直接启动连到新的分库分表上去。

验证一下,ok 了,完美,大家伸个懒腰,看看看凌晨 4 点钟的夜景,打个车回家吧。

现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?相关推荐

  1. 数据库面试 - 如何设计才可以让系统从未分库分表动态切换到分库分表上?

    数据库面试 - 如何设计才可以让系统从未分库分表动态切换到分库分表上? 面试题 现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上? 面试官心理分析 你看 ...

  2. 【双写迁移方案】实现动态切换实现分库分表

    面试题 现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上? 面试官心理分析 你看看,你现在已经明白为啥要分库分表了,你也知道常用的分库分表中间件了,你也 ...

  3. Mycat 读写分离、主从切换、分库分表的操作记录

    Mycat 读写分离.主从切换.分库分表的操作记录 系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等 ...

  4. Mycat读写分离、主从切换、分库分表的操作记录 https://www.cnblogs.com/kevingrace/p/9365840.html

    [此篇文章写得不错] 系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问 ...

  5. mysql 分表后排序_MySQL优化分库分表,为什么要分表,分表以后如何进行排序查询,业务如何设计?...

    昨天面试新人的时候,遇到了这么一个问题,按照自己的想法大体聊了一些,但大多是感性的,并没有完整的了解why and how. 今天查了一些相关的资料,包括<MySQL性能调优与架构设计>. ...

  6. Excel将单表复制追加到另一个未打开的工作簿

    大家都知道我们再复制一个表格内容到另一个表的时候,有的会直接全选复制粘贴,有的呢可能会右键单击表名然后选择复制或移动,但是这个操作的前提都是要打开另一格工作簿,那今天小编分享的是,Excel将单表复制 ...

  7. 发生一个未处理的异常 脚本调试 错误号2912

    我已经找到问题的 答案了, 是删除注册表里的两个键值就行了. 在msdn中 是这样解释的: 关键词"实时调试" 实时调试 是这样一种功能,当在 Visual Studio 外运行的 ...

  8. 电脑中毒软件都变成java图标_当前数据表有10条记录,若用函数EOF()测试结果为.T.,此时函数RECNO()值是________。 (2.0分)_学小易找答案...

    [单选题]洁净室的内表面应 [单选题]当前数据表有10条记录,若用函数EOF()测试结果为.T.,此时函数RECNO()值是________. (2.0分) [单选题]LD50与毒性评价的关系是 [单 ...

  9. 有一个顺序表L,其元素为整形数据,设计一个算法,将L中的所有小于表头元素的整数放在前半部分,大于表头元素的整数放在后半部分

    题目 有一个顺序表L,其元素为整形数据,设计一个算法,将L中的所有小于表头元素的整数放在前半部分,大于表头元素的整数放在后半部分 解答(天勤) /*************************** ...

最新文章

  1. SSIS--FOR循环容器
  2. dede php可以传多个参数,织梦分页标签dede:pagelist传参数
  3. JavaI/O:使用InputStreamReader和BufferedReade实现控制器输入输出
  4. 加工中心刻字宏程序_加工中心通用铣螺纹宏程序实例,千万别说你学不会!
  5. linux命令scp
  6. oracle v$system_event,45.Oracle杂记——Oracle常用动态视图v$system_event
  7. 常对象成员和常成员函数
  8. Android 智能指针 视频,Android系统智能指针中轻量级指针
  9. vue ---- 插槽
  10. h5外卖源码php_从零搭建外卖CPS平台小程序开发
  11. XenDesktop 学习笔记1之DDC
  12. PID算法(C语言)
  13. photoshop 证件照动作_国考报名确认及缴费进行中!证件照上传注意事项!
  14. 微信小程序官方示例文档免费下载文档
  15. 常用adb命令学习:查看和修改设备的输入法
  16. [乱七八糟]Google搜索秘籍
  17. 王者荣耀官网全皮肤超超超清原皮爬取!!!
  18. Zuul网关的快速使用
  19. 专升本——非谓语动词
  20. 英菲尼迪tlme是什么意思_英菲尼迪车标含义是什么

热门文章

  1. 横向打印二叉树 java_按树状横向打印二叉树
  2. 【小概念】格拉姆矩阵(gram matrix)
  3. 100-days: twenty-four
  4. LeetCode 6. Z 字形变换 (N字形变换)
  5. ubuntu20.04启动时黑屏
  6. 使用node读取文件内容并且替换文件中的内容
  7. confluence 删除_知识管理平台Confluence教程:如何删除或还原页面?
  8. Why we need activation function?
  9. 【RDMA】RDMA网卡通讯
  10. 启发式算法,元启发式算法,超启发式算法