工作经验~数据库迁移的一些体会

一 简介:本文是本人对于迁移库的理解,仅供参考

二 描述: 在业务众多,DB众多的情况下,什么情况下需要针对 一机多库的情况进行数据库的拆分

三 现象:

    如果有以下情况之一的,建议进行数据库的迁移与拆分

    1 磁盘利用率util值:对于机械硬盘,一定要持续关注utl值,一旦utl值一直处于饱和状态,这样就需要考虑拆分业务密集的库,防止相互影响

    2  从库的延迟:对于一主N从的架构,如果N从都出现延迟警报,而这些从库还参与了读的功能,这时候就需要分析binlog,定位DML密集的N个库,进行拆分处理,防止读受到影响

    3  不寻常的慢日志: 在已经优化完大表慢查询的情况下,慢日志出现很多不该慢的sql(比如扫描千行这种),甚至还有DML语句,这样情况下也要进行拆分处理,防止业务受到影响

四 建议

   1 对于业务量增长很迅速,表数据量很大的库,建议独占一组集群.比如程序的分库分表业务,比如核心库,建议不要再放置其他DB,防止受到影响

    2 业务上线DB最好能提供关于新DB的描述,越详细越好,这样有助于DBA进行规划放置

五 如何迁库

    做法 1 建议一组新集群,作为原主的从库,新主作为新从的级联库

            2 针对 切业务的时间,要和研发讨论好,最好不要有任何DML操作,因为如果频繁的话,可能导致新主的级联复制发生错误,导致数据混乱,虽然时间很短 

            3 建议采用ZK etcd这样的前端,这样,只需更改value值,然后程序重启,观察程序IP进行漂移即可

            4 进行善后清理工作         

五 总结

    针对DB越来越多,物理机无法完全满足的情况下.根据物理机的容量极限和业务库的本身进行评估,需要一个比较成熟的方案,这样可以避免日后出现问题,才进行迁移数据库

猜你喜欢

转载自www.cnblogs.com/danhuangpai/p/9378303.html