首页 新闻 会员 周边 捐助

已经正式运行很久的web项目怎么进行mysql分库

0
[待解决问题]

我们的web项目已经运行了2年了,由于当初用户少,没有考虑周全,只有一个mysql数据库,现在用户越来越多,mysql明显已经快扛不住了,老大让想办法进行分库。

各位大牛有什么好的方案么,跪求!

ps: 项目是用spring+spring MVC+mybatis架构

leiboo的主页 leiboo | 菜鸟二级 | 园豆:202
提问于:2016-04-01 17:07
< >
分享
所有回答(1)
0

1.mysql上先加个slave,使用binlog做同步,然后再最后同步快完的时候稍微停下站点,然后上新版本程序(程序需已支持分片),等待同步完成断开master slave,变成两个独立的master(也就是你分片针对的db)。最后对两个db做数据清洗,把不属于自己分片的数据去掉(这步可以在站点上线后做),最后站点上线正常提供服务。

2.程序修正,需保证双写db,单读老库,之后将老库数据历史数据导出后导入新库(需解决可能出现的冲突,如:新库已有数据的情况下就不要再导了),等导入完毕相当于两个库数据完全一致,然后变成单读新库,最后取消双写变成分片写,取消单读变成分片读即可。

 

Daniel Cai | 园豆:10424 (专家六级) | 2016-04-01 18:29

忘了说了,第二种之后也要删除各库中不需要的数据。

当然如果你以前就是master slave的就更简单了,只需要稍微停下站点,把slave和master断开然后按1方法操作就完了。

支持(0) 反对(0) Daniel Cai | 园豆:10424 (专家六级) | 2016-04-01 18:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册