gzp1
(g)
2019 年9 月 18 日 11:50
1
为提高效率,提问时请尽量提供详细背景信息,问题描述清晰可优先响应。以下信息点请尽量提供:
系统版本 & kernel 版本:centos 7
TiDB 版本:2.1.15
磁盘型号:
集群节点分布:
数据量 & region 数量 & 副本数:
集群 QPS、.999-Duration、读写比例:
问题描述(我做了什么):
上游一些DDL语句,TiDB不兼容,所以需要手动改表,不影响上游的DML 的重放。
使用DM,遇到这种手动改造的表,就会发现:table structure compatibility check ,状态fail。
如何跳过这项检测?类似这样:ignore-checking-items: [“dump_privilege”, “replication_privilege”]
gzp1
(g)
2019 年9 月 18 日 12:06
4
我已经过滤了相关的event。
但是,启动任务时,dm会自行判断线上和线下的表结构,如果不一致,则:table structure compatibility check 这一项为fail
dm 理论上在启动时不会主动的比较上下游的表结构,你使用的 DM 是什么版本?请描述下详细的信息:
1、这个报错是什么操作后出现的,比如是启动时,还是正常运行时出现了上述报错
2、请提供详细的报错日志
gzp1
(g)
2019 年9 月 18 日 12:54
6
使用的版本:
Release Version: v1.0.0-alpha-83-gf6f0566
Git Commit Hash: f6f056642417f09e4c7f304e9f4fb4c5c58d2d5a
Git Branch: master
UTC Build Time: 2019-05-22 02:46
Go Version: go version go1.12 linux/amd64
操作前:
mysql 表结构:
create table a (id int(11), a varchar , b varchar, FULLTEXT KEY test_k
(a) )
经过DBA 操作:
先drop fulltext key, 再 ALTER TABLE a ADD FULLTEXT INDEX test_k_new (a, b ) WITH PARSER ngram;
线上mysql 表结构变为:
create table a (id int(11), a varchar , b varchar, FULLTEXT KEY test_k_new
(a, b) )
因为TiDB 不支持指定两列为fulltext key,该ddl导致DM task暂停。
手动过滤,添加event filter之后。在DM dmctl中,update-task该任务时,结果报:table structure compatibility check 这一项为fail
ericsyh
(Eric Shen)
2019 年9 月 18 日 15:38
7
要跳过的话配置的话这么写:ignore-checking-items: [“table_schema”]
不过看描述这个操作应该不在表结构的兼容性范围内的,table structure compatibility check fail 有 errorMsg 不?
1 个赞
gzp1
(g)
2019 年9 月 19 日 03:02
8
高手
该配置已经帮我解决了问题。
的确,这个表结构不再兼容范围内,tidb对全文索引支持不好。但其实这个索引不会影响MySQL → TiDB的DML 语句。
确实有errorMsg:说线上表结构无法解析。附上线上DDL 和 error。
DDL:
CREATE TABLE help
( id
int(11) NOT NULL AUTO_INCREMENT, a
varchar(1000) NOT NULL, b
varchar(20) DEFAULT ‘center’, PRIMARY KEY (id
), FULLTEXT KEY help
(a
,b
) /*!50100 WITH PARSER ngram
*/ ) ENGINE=InnoDB AUTO_INCREMENT=224 DEFAULT CHARSET=utf8mb4
error:
---------- error options ----------
information: line 10 column 88 near “WITH PARSER ngram
*/
) ENGINE=InnoDB AUTO_INCREMENT=224 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC”
对线上DDL里面,特殊注释: /*!50100 WITH PARSER ngram
*/ 无法识别
但是,我们这边没关系,数据可以同步(不影响DML)过来就行
ericsyh
(Eric Shen)
2019 年9 月 19 日 05:27
9
ignore-checking-items 文档有缺失,需要补充一下。
另外这个报错看起来像是 parser 解析不了,这个我跟研发确认下。应该是这个场景不会被 table structure compatibility check 给 block 的。
1 个赞
分库分表合并同步 ignore-checking-items这项配置可以忽略非自增主键冲突吗,该如何配置,忽略非自增主键冲突
yilong
(yi888long)
2020 年2 月 28 日 08:46
11
你的意识是忽略主键冲突,那不合理,主键只能有一个.
system
(system)
关闭
2022 年10 月 31 日 19:03
12
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。