作者:手辨
第一節
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實例B的importtest中
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的調用無法對遷移的任務以及遷移的狀態可控,請求發送成功後全部交給了阿里雲的後臺系統,控制檯只能看到”遷出數據中”和”遷入數據中”的狀態,假設報錯了也無法看到錯誤的信息