背景

当业务持续发展,数据量和并发量达到一定程度,传统单体数据库可能面临性能、可扩展性、可用性等问题;

业界曾提出 NoSQL 解决方案,通过数据分片和水平扩容解决以上问题,但是 NoSQL 数据库通常不支持事务和 SQL;

ShardingSphere 也支持数据分片和水平扩容,可以解决以上问题,同时还支持分布式事务和 SQL;

ShardingSphere 提供的数据迁移方案可以助力传统单体数据库平滑切换到 ShardingSphere。

挑战

在迁移过程中,不应该对正在运行的业务造成影响。尽可能减少迁移时数据不可用的时间窗口,是数据迁移的第一个挑战;

其次,数据迁移不应该对现有的数据造成影响,如何保证数据的正确性,是数据迁移的第二个挑战。

目标

减少数据迁移时的业务影响,提供一站式的通用数据迁移解决方案,是 Apache ShardingSphere 数据迁移的主要设计目标。

应用场景

假如一个应用系统在使用传统单体数据库,单表数据量达到了1亿并且还在快速增长,单体数据库负载持续在高位,成为系统瓶颈。一旦数据库成为瓶颈,对应用服务器扩容是无效的,需要对数据库进行扩容。

相关参考