黄东旭解析 TiDB 的核心优势
498
2024-03-13
本节主要验证DM从MySQL同步数据到TiDB的各场景用例。
普通场景
源库:普通 目标库:普通
整库√*若为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小时内删除侵权内容。