使用DMS时,源端与目标端能否配置不同的表名?
DMS跨表名迁移问题解答
- DMS支持源端与目标端使用不同表名,你遇到的
table does not exist on target错误,本质是没配置表映射规则,让DMS知道源表A要对应到目标表B。 - 解决方法:
- 打开DMS任务的表映射配置,新增一条「选择规则」,指定源端的表
A(格式一般是源数据库名.模式名.A)。 - 给这条选择规则添加一条「转换规则」,类型选「重命名表」,把目标表名设为
B,同时指定目标端的库和模式。 - 检查DMS使用的数据库账号/角色,确保拥有目标表
B的读写权限,避免因权限问题导致表识别失败。 - 因为目标表是分区表,要确认DMS任务配置里开启了对分区表的支持(不同数据库引擎的要求可能不一样,比如Oracle到PostgreSQL的迁移需额外核对参数)。
- 打开DMS任务的表映射配置,新增一条「选择规则」,指定源端的表
补充:如果用的是云厂商(阿里云/腾讯云等)的DMS,表映射的操作路径可能有差异,但核心都是通过转换规则关联不同名称的源表和目标表。
内容的提问来源于stack exchange,提问作者Sujeet
相关产品推荐
相关产品推荐

