You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS DMS迁移任务使用MySQL表映射通配符时提示“未找到表”

解决AWS DMS迁移company_前缀数据库的匹配问题

问题原因

AWS DMS的表映射规则中,_是通配符(匹配任意单个字符),直接使用company_%会匹配所有以company开头、后跟任意单个字符的数据库(比如companyAtest),而非字面量company_前缀的库。而JSON格式中反斜杠需要双重转义,这是你之前转义失败的核心原因。

方案1:正确转义下划线的通配符匹配

使用双重反斜杠转义下划线,确保DMS将其识别为字面量字符,而非通配符。修改后的表映射规则如下:

{
  "rule-type": "selection",
  "rule-id": "1",
  "rule-name": "Include all company_ prefixed schemas",
  "object-locator": {
    "schema-name": "company\\_%",
    "table-name": "%"
  },
  "rule-action": "include"
}
  • 解析逻辑:JSON中的\\_会被转换为\_,DMS识别后将_当作字面量,%匹配后续任意字符,精准命中所有company_开头的数据库。

方案2:使用正则表达式匹配(更直观)

DMS支持通过regex:前缀使用正则表达式,无需处理转义问题,更易维护:

{
  "rule-type": "selection",
  "rule-id": "1",
  "rule-name": "Include all company_ prefixed schemas via regex",
  "object-locator": {
    "schema-name": "regex:^company_",
    "table-name": "%"
  },
  "rule-action": "include"
}
  • 解析逻辑:^company_表示匹配以company_开头的所有数据库名称,正则规则直接避免了通配符冲突问题。

验证步骤

  1. 在源RDS MySQL中执行命令,确认存在符合条件的数据库:
    SHOW DATABASES LIKE 'company\_%';
    
  2. 确保DMS源端点使用的root账号拥有所有company_前缀数据库的访问权限(包括读取元数据和表数据)。
  3. 检查DMS实例的VPC和安全组配置,确保能正常连接源/目标RDS实例。

内容的提问来源于stack exchange,提问作者czende

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 00:36:00