开发者社区 问答 正文

如何进行schema存在性检查


主要检查待迁移的数据库在目标RDS实例中是否存在。如果不存在,那么数据传输服务会自动创建。但是对于如下几种情况,自动创建数据库会失败,所以直接报预检查失败。


  • 源数据库名中含有小写字母、数字、下划线、中划线的其他特殊字符。
    当遇到这种情况时,预检查的失败原因为:迁移的数据库迁移库名的名称不符合rds规范。
    修复方法为:到RDS控制台的数据库管理页面中,创建满足rds规范的数据库,将新建库的读写权限赋给迁移账号。然后使用数据传输服务提供的库名映射功能将要迁移的数据库映射至新创建的数据库后,然后重新进行预检查。

  • 源数据库的字符集不为utf8、gbk、latin1、utf8mb4中的一种。
    当遇到这种情况时,预检查的失败原因为:迁移的数据库库名的字符集不满足rds的要求。
    修复方法为:到RDS控制台的数据库管理页面中,创建满足rds规范的数据库,然后将新建库的读写权限赋给迁移账号。如果新创建的库名与待迁移的库名不同,那么使用数据传输服务提供的库名映射功能将要迁移的数据库映射至新创建的数据库后,重新进行预检查。

  • 目标库迁移账号无迁移库的读写权限。
    当遇到这种情况时,预检查的失败原因为:该用户没有权限使用目标库的迁移库名。
    修复方法为:先到RDS控制台的数据库管理页面中账号管理页面,修改权限,将迁移库的读写权限授予迁移账号后,重新进行预检查。

展开
收起
云栖大讲堂 2017-10-31 10:48:30 1784 分享 版权
阿里云 AI 助理回答

在使用阿里云数据传输服务(Data Transmission Service, DTS)进行数据库迁移时,确保迁移过程顺利的关键在于遵循RDS(Relational Database Service)的命名规范和权限要求。您提到的几种预检查失败情况及修复方法总结如下:

  1. 源数据库名不符合RDS规范

    • 原因:数据库名称包含小写字母、数字、下划线、中划线以外的特殊字符。
    • 修复方法
      • 在RDS控制台手动创建一个符合命名规范的新数据库,即只使用字母、数字、下划线和中划线。
      • 为新数据库分配给迁移账号读写权限。
      • 使用DTS的库名映射功能,将待迁移的数据库映射到新创建的数据库上。
      • 完成上述步骤后重新执行预检查。
  2. 源数据库字符集不兼容

    • 原因:数据库字符集不是utf8、gbk、latin1或utf8mb4之一。
    • 修复方法
      • 在RDS控制台创建一个字符集符合要求的新数据库。
      • 授予迁移账号对该新数据库的读写权限。
      • 如新库名与原库名不同,同样利用DTS的库名映射功能完成映射。
      • 之后再次进行预检查。
  3. 目标库迁移账号权限不足

    • 原因:迁移账号没有目标库的读写权限。
    • 修复方法
      • 进入RDS控制台的账号管理页面,调整迁移账号的权限设置,确保其拥有目标库的读写权限。
      • 权限调整完毕后,重新执行预检查流程。

综上所述,解决这些问题的核心在于确保数据库名称、字符集均符合RDS的规定,并且迁移账号具有足够的权限。通过这些针对性的修复措施,可以有效避免预检查失败,从而顺利完成数据库的迁移任务。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答