热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

mysql数据库扩容中的平滑扩容

数据库扩容的过程中,如果想要持续对外提供服务,保证服务的可用性,平滑扩容方案是最好的选择。平滑扩容就是将数据库数量扩容成原来的2倍

数据库扩容的过程中,如果想要持续对外提供服务,保证服务的可用性,平滑扩容方案是最好的选择。


平滑扩容就是将数据库数量扩容成原来的2倍,比如:由2个数据库扩容到4个数据库,具体步骤如下:

(1)新增2个数据库

(2)配置双主进行数据同步(先测试、后上线)



数据同步完成之后,配置双主双写(同步因为有延迟,如果时时刻刻都有写和更新操作,会存在不

准确问题)



数据同步完成后,删除双主同步,修改数据库配置,并重启;

 


此时已经扩容完成,但此时的数据并没有减少,新增的数据库跟旧的数据库一样多的数据,此时还

需要写一个程序,清空数据库中多余的数据,如:

User1去除 uid % 4 = 2的数据;

User3去除 uid % 4 = 0的数据;

User2去除 uid % 4 = 3的数据;

User4去除 uid % 4 = 1的数据;


平滑扩容方案能够实现n库扩2n库的平滑扩容,增加数据库服务能力,降低单库一半的数据量。其核心
原理是:成倍扩容,避免数据迁移。
优点:
(1)扩容期间,服务正常进行,保证高可用
(2)相对停机扩容,时间长,项目组压力没那么大,出错率低
(3)扩容期间遇到问题,随时解决,不怕影响线上服务
(4)可以将每个数据库数据量减少一半
缺点:
(1)程序复杂、配置双主同步、双主双写、检测数据同步等
(2)后期数据库扩容,比如成千上万,代价比较高
适用场景:
大型网站
对高可用要求高的服务


推荐阅读
author-avatar
kerrybrooks
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有