1、随着时间推移,各分片上数据量及访问量越来越大,服务器容量和性能达到瓶颈,这时就需要进行数据库的扩容。
2、数倌栗受绽据扩容在DBProxy不停机的前提下,将高负载服务器上的部分分片完整的迁移到低负载的服务器上,透明的完成分片数据迁移和配置切换。
3、数倌栗受绽据扩容的全量迁移通过XtraBackup高效访问Innodb存储引擎导出物理数据文件,在Master、Slave库MysqlImport导入物理文件。
4、增量迁移则伪装成mysql数据库的salve节点,接收主库发送过来的binlog数据,解析binlog数据,补偿目标数据库。
5、数据扩容过程中涉及DBProxy只读:完成补偿全量迁移过程中发生的binlog后,设置DBProxy相关数据分片只读。
6、关于数据分片切换:只读下完成binlog补偿,切换dbproxy中涉及的分片配置;完成数据扩容后,用户页面确认并清除源数据分片。
7、数据扩容的难点最主要在用支持在线进行:热扩容、全量高效迁移、增量复杂高效Binlog处理。