我的上游数据库有50个库和表
结果DM在任务同步时, 自动在TIDB上,创建了50个空的数据库:
然后还去创建对应的表
这个怎么屏蔽掉???
所以报第一个错,提示库已经存在, 有什么办法不让他自动创建库??不自动创建表
我的上游数据库有50个库和表
结果DM在任务同步时, 自动在TIDB上,创建了50个空的数据库:
然后还去创建对应的表
这个怎么屏蔽掉???
所以报第一个错,提示库已经存在, 有什么办法不让他自动创建库??不自动创建表
全量的话貌似没有办法避免
可以采用dumpling+lighting来拷贝数据,然后dm增量数据,lighting可以只导入数据
能发一下任务配置吗,感觉 BAList 没配好
block-allow 配合route 呢?
直接使用DM做分库分表合并,没法屏蔽的,配置规则正确,只是创建空库的
关键是,为什么会去创建空库,这算是一个BUG啊, 我同步了一个100个分库的表,结果创建了100个空库, 让别人看到,会说上几句的
您好,库的映射是不是没设置,库和表的映射都要设置的,如下:
rule-1:
schema-pattern: "test_*"
table-pattern: "t_*"
target-schema: "test"
target-table: "t"
rule-2:
schema-pattern: "test_*"
target-schema: "test"
定义数据源表迁移到目标 TiDB 表的路由规则,可以定义多个规则
定义数据源表迁移到目标 TiDB 表的路由规则,可以定义多个规则
他的意思是,您没有配置 schema 级别的 route 规则。从 BAList 来看,所有开头是 “cloud_order_” 的库都能命中,需要同步到下游;在开始全量同步的时候,lightning 会先对库创建的文件(dumpling 导出时,会创建一个 db-schema-create.sql 的文件)进行 route,如果没有库级别的规则,如:
# 库级别规则
rule-2:
schema-pattern: "test_*"
target-schema: "test"
这个文件是无法匹配到任何表级别的规则的,如:
# 表级别规则
rule-1:
schema-pattern: "test_*"
table-pattern: "t_*"
target-schema: "test"
target-table: "t"
这时候,lightning 就会直接在下游创建一个同名的库(因为上游存在于这个库中的表可能也命中了 BAList,但是没有命中 routes,这时候它们就需要直接导入到和原来名字相同的库、表中)。这就是为什么全量同步的过程中有可能创建空的库。
您可以尝试配置库级别的 route 规则,看看是否还会有这个问题。如果还有,就可能是 bug。
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。