标签:strong 小明 数据库配置 follow target sch alt SM image
每一个项目都是由小项目发展而来,从最初的一台数据库,到后面的几千上万台数据库,这发展的过程,我们都要涉及到一个技术问题:当数据量太大的时候,如何进行扩容?
小明现在负责一个站点,用户数据库有2个,网站用户数据通过ID取模,分别存在两台用户数据库中,现在数据增大,两台数据库已经不够用了,现在需要增加数据库进行扩容,小明应该如何进行扩容?
我们先来了解下停机扩容方案,这是一种很多人初期都会使用的方案(几台数据库的时候),具体步骤:
数据迁移失败,或者迁移后测试失败,则将服务配置修改回原先的两个库,改天再升级。
现在我们来聊一下本文的重点:平滑扩容中最好的方案就是扩容的数据库是原先数据库的倍数,如:2个数据库扩容到4个数据库,是原先的2倍。步骤:
(1)新增2个数据库
(2)配置双主进行数据同步(先测试,后线上,重启服务时间是秒级)
(3)数据同步完成之后,配置主主双写(因为同步有延迟,如果每时每刻都有数据写入/更新的话,就不能准确的保证数据已经同步完成)
(4)数据同步完成后(时间比较长),删除双主同步,修改数据库配置,并重启(秒级);
(5)此时已经扩容完成,但此时的数据并没有减少,新增的数据库跟旧的数据库一样多的数据,此时还需要写一个程序,清空数据库中多余的数据,如:
现在,我们就已经完成了数据库的平滑扩容了。
本文主要简单讲解了数据库扩容的两种方案,并对这两种方案的优缺点、适用场景进行了说明:
58沈剑老师架构师之路的:数据库秒级平滑扩容架构方案
标签:strong 小明 数据库配置 follow target sch alt SM image
原文地址:https://www.cnblogs.com/kafeixiaoluo/p/9156855.html