首页 > 数据库 > > Data Migration 常见问题
DM 仅支持解析标准版本的 MySQL/MariaDB 的 binlog,对于阿里云 RDS 以及其他云数据库没有进行过测试,如果确认其 binlog 为标准格式,则可以支持。
非获取匹配(?!)?目前不支持,DM 仅支持 golang 标准库的正则,可以通过 re2-syntax 了解 golang 支持的正则表达式。
DM 会尝试将包含多个 DDL 变更操作的单条语句拆分成只包含一个 DDL 操作的多条语句,但是可能没有覆盖所有的场景。建议在上游执行的一条 statement 中只包含一个 DDL 操作,或者在测试环境中验证一下,如果不支持,可以给 DM 提 issue。
你需要使用 dmctl 手动处理 TiDB 不兼容的 DDL 语句(包括手动跳过该 DDL 语句或使用用户指定的 DDL 语句替换原 DDL 语句,详见
TiDB 目前并不兼容 MySQL 支持的所有 DDL 语句。
此时,relay 处理单元通常会发生错误而退出,且无法优雅地自动恢复,因此需要通过手动方式恢复数据同步:
online-ddl-scheme: "gh-ost", gh-ost 表相关的 DDL 报错该如何处理?[unit=Sync] ["error information"="{\"msg\":\"[code=36046:class=sync-unit:scope=internal:level=high] online ddls on ghost table `xxx`.`_xxxx_gho`\\ngithub.com/pingcap/dm/pkg/terror.(*Error).Generate ......
出现上述错误可能有以下原因:
DM 在最后 rename ghost_table to origin table 的步骤会把内存的 DDL 信息读出,并且还原为 origin table 的 DDL。而内存中的 DDL 信息是在 alter ghost_table 的时候进行dm_meta.{task_name}_onlineddl 中读取出来。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3158472/ ,如需转载,请注明出处,否则将追究法律责任。