ImportDatabaseBetweenInstances使用实例


第一节 ImportDatabaseBetweenInstances的作用

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

第二节 使用实例

2.1 Rds准备

华东1Rds实例A:

ImportDatabaseBetweenInstances使用实例

ImportDatabaseBetweenInstances使用实例

ImportDatabaseBetweenInstances使用实例

华东1Rds实例B:

ImportDatabaseBetweenInstances使用实例

ImportDatabaseBetweenInstances使用实例

Rds cli:

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

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

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

ImportDatabaseBetweenInstances使用实例


实现目标:将华东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"']}

 

结果如下:

ImportDatabaseBetweenInstances使用实例

实例的状态变化如下:

ImportDatabaseBetweenInstances使用实例

ImportDatabaseBetweenInstances使用实例

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

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

ImportDatabaseBetweenInstances使用实例

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

上一篇:java表单重复提交常用解决办法


下一篇:Consistent Nonlocking Reads,Locking Reads 和Phantom Rows