Logo
数据迁移

数据迁移 #

背景 #

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

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

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

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

挑战 #

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

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

目标 #

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

核心概念 #

节点 #

运行计算层或存储层组件进程的实例,可以是物理机、虚拟机、容器等。

集群 #

为了提供特定服务而集合在一起的多个节点。

源端 #

原始数据所在的存储集群。

目标端 #

原始数据将要迁移的目标存储集群。

数据迁移作业 #

把数据从某一个存储集群复制到另一个存储集群的完整流程。

存量数据 #

在数据迁移作业开始前,数据节点中已有的数据。

增量数据 #

在数据迁移作业执行过程中,业务系统所产生的新数据。

使用限制 #

支持项 #

  • 将外围数据迁移至 SphereEx-DBPlusEngine 所管理的数据库;
  • 整型或字符串主键表迁移。

不支持项 #

  • 迁移无主键且无唯一键的表;
  • 迁移复合主键或复合唯一键的表;
  • 不支持在当前存储节点之上做迁移,需要准备一个全新的数据库集群作为迁移目标库。