使用Syncer数据同步遇到的问题:
syncer版本:
2018/07/16 17:24:43 DEBUG Now using Go's stdlib log package (via loggers/mappers/stdlib).
Release Version: v1.0.0-16-g102463e
Git Commit Hash: 102463ee614ba4fe5234486e26ef435daa6f2847
Git Branch: master
UTC Build Time: 2018-06-27 06:25:00
Go Version: go version go1.10.2 linux/amd64
- syncer报错日志:
2018/07/16 16:23:22 main.go:79: [error] /home/jenkins/workspace/build_tidb_enterprise_tools_master/go/src/github.com/pingcap/tidb-enterprise-tools/syncer/syncer.go:529: gen insert sqls failed: insert columns and data mismatch in length: 5 vs 6, schema: xiaomai, table: institution_product_course
/home/jenkins/workspace/build_tidb_enterprise_tools_master/go/src/github.com/pingcap/tidb-enterprise-tools/syncer/syncer.go:165:
2018/07/16 16:23:22 syncer.go:752: [info] print status exits, err:context canceled
同步出现了两边表结构不一致的问题,查询RDS和TIDB两边的表结构:
RDS上的建表语句:
CREATE TABLE `institution_product_course` (
`product_id` bigint(20) DEFAULT NULL COMMENT '商品id',
`inst_id` bigint(20) DEFAULT NULL COMMENT '机构ID',
`course_id` bigint(20) DEFAULT NULL COMMENT '课程id',
`gmt_create` datetime DEFAULT NULL,
`gmt_modify` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品课程关联表'
TIDB上的建表语句:
原因:
rds 上的表没有主键的话,会创建一个隐藏的 ID,syncer目前还不支持忽略隐藏 ID