ImportDatabaseBetweenInstances使用实例

    xiaoxiao2021-04-18  220

    第一节 ImportDatabaseBetweenInstances的作用

    具体参考阿里云帮助文档的说明:https://help.aliyun.com/document_detail/26301.html

    第二节 使用实例

    2.1 Rds准备

    华东1Rds实例A:

    华东1Rds实例B:

    Rds cli:

    此处使用阿里云RDS命令行工具进行调用,安装和下载:

    https://help.aliyun.com/knowledge_detail/39285.html

    此处一定要确定使用的是该连接的cli,即命令开始是rds  不是aliyuncli rds,对比如下:

    实现目标:将华东1实例A的数据库importtest(内有测试表test)数据迁移到华东1实例Bimporttest

    2.2 执行调用

    根据api的文档介绍,使用rds cli调用需要如下参数:

    1)目标rds的实例id

    2)源rds的实例id

    3)需要迁移的实例中的数据库名称

    注意事项:

    1)源和目标的账号管理方式不可以是高权限账号,会提示:

    "Message": "The operation is not permitted due to account mode of instance.",所以非高权限账号管理模式的实例才可以

    2)不支持跨地域的实例,会提示:"Message": "the specified instance region does not support this operation.",

    所以实例要同地域的

    3)如果出现dbname相关的错误,会提示:"Message": "The specified parameter DBInfo is not valid or db not 

    exist.",这也是最容易出现问题的地方

    4)确保源和目标的实例id正确,不正确会提示"Message": "DBInstanceIdentifier does not refer to an existing DB instance."

     

    安装好rds cli之后,输入如下命令:

    rds ImportDatabaseBetweenInstances --DBInstanceId  rds99k7j*******z1spd6

    --SourceDBInstanceId rm-bp1m62*******cksu  --DBInfo {"'DBNames'":["'importtest'"]}

    或者:

    rds ImportDatabaseBetweenInstances --DBInstanceId  rds99k7j*******z1spd6

    --SourceDBInstanceId rm-bp1m62*******cksu  --DBInfo {'"DBNames"':['"importtest"']}

     

    结果如下:

    实例的状态变化如下:

    任务完成后,实例状态会变为”运行中”,迁移时可能因为其他原因时间会比较长,需要等待

    因为测试是只有一个测试表,2分钟就完成了,完成后查看目标实例的数据如下:

    这样就执行完成了两个rds实例之间数据库的迁移,个人更倾向于使用dts以及其他的方式来实现数据的迁移,使用该api的调用无法对迁移的任务以及迁移的状态可控,请求发送成功后全部交给了阿里云的后台系统,控制台只能看到”迁出数据中”和”迁入数据中”的状态,假设报错了也无法看到错误的信息


    最新回复(0)