Data Migration 功能测试

网友投稿 458 2024-03-13



本节主要验证DM从MySQL同步数据到TiDB的各场景用例。

Data Migration 功能测试

全量迁移

场景用例支持?限制

普通场景

源库:普通 目标库:普通

整库√*若为RDS,则不支持库中存在没有主键的表指定表√*若为RDS,则不支持没有主键的表库(表)更名

分库分表聚合

源库:分库分表 目标库:聚合

整库√*若为RDS,则不支持库中存在没有主键的表;若主键为自增,则须保证分表的主键全局唯一指定表√*若为RDS,则不支持没有主键的表;若主键为自增,则须保证每个分表的主键全局唯一库(表)更名

全量导出导入相关原理

增量同步

场景用例支持?限制说明

普通场景

源库:普通 目标库:普通

新增表

√*

TiDB限制删除表

重命名表

新增字段

√*

TiDB限制删除字段

修改字段

√*

TiDB限制重命名字段新增索引

√*

TiDB限制删除索引

重命名索引

Gh-ost新增字段√*TiDB限制Gh-ost修改字段√*TiDB限制Gh-ost删除字段Gh-ost新增索引√*TiDB限制Gh-ost删除索引Truncate table表及事件过滤等DM特性drop database

分库分表聚合

源库:分库分表 目标库:聚合

新增表√*分库分表DDL限制TiDB限制删除表×分库分表DDL限制重命名表√*分库分表DDL限制新增字段√*分库分表DDL限制TiDB限制删除字段修改字段√*分库分表DDL限制、TiDB限制重命名字段√*分库分表DDL限制乐观模式下不支持,悲观模式下支持新增索引√*TiDB限制删除索引重命名索引√*分库分表DDL限制、TiDB限制乐观模式下不支持,悲观模式下支持Gh-ost新增字段√*分库分表DDL限制TiDB限制Gh-ost修改字段√*分库分表DDL限制、TiDB限制Gh-ost删除字段Gh-ost新增索引√*TiDB限制Gh-ost删除索引Truncate table×分库分表DDL限制表及事件过滤等DM特性Drop database×分库分表DDL限制

不管是全量迁移还是增量同步都可以通过设置限流参数来保证上游和目标库数据库实例的性能稳定。

其他用例

用例1

结果:支持

用例2:是否支持ALGORITHM={DEFAULT | INPLACE | COPY}, LOCK={DEFAULT | NONE | SHARED | EXCLUSIVE}语法?       例:alter table test.test_1 modify c3 varchar(30) default null, algorithm=inplace, lock=shared;

结果:支持,不会报错,不建议使用。           

说明:DM会把原DDL改成3条语句分别执行:                 

1). alter table test.test_1 modify c3 varchar(30) default null;                 

2). alter table test.test_1 algorithm=inplace;                 

3). alter table test.test_1 lock=shared;

用例3:源库DDL一条语句设计多个操作,DM是否支持,如:      alter table shard_2.test_4 add c4 varchar(30) default null, add c5 varchar(30) default null;

结果:支持,不管是普通同步还是分库分表聚合都支持。DM会把原DDL拆成多条语句分别执行:alter table shard_2.test_4 add c4 varchar(30) default null和alter table shard_2.test_4 add c5 varchar(30) default null

用例4:主从切换对DM同步的是否有影响?

结果:在gtid模式及主从gtid一致的情况下,无影响

数据校验

DM本身不提供数据校验功能,可以通过TiDB生态中的sync-diff-inspector工具满足我们的数据校验需求。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Chaosd 模拟两地三中心集群网络环境
下一篇:Data Migration 运维常见问题解答
相关文章