作者:手辨
第一節
ImportDatabaseBetweenInstances的作用
具體參考阿裡雲幫助文檔的說明:
https://help.aliyun.com/document_detail/26301.html 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'"]}
或者:
--DBInstanceId rds99k7j*z1spd6
{'"DBNames"':['"importtest"']}
結果如下:
執行個體的狀态變化如下:
任務完成後,執行個體狀态會變為”運作中”,遷移時可能因為其他原因時間會比較長,需要等待
因為測試是隻有一個測試表,2分鐘就完成了,完成後檢視目标執行個體的資料如下:
這樣就執行完成了兩個rds執行個體之間資料庫的遷移,個人更傾向于使用dts以及其他的方式來實作資料的遷移,使用該api的調用無法對遷移的任務以及遷移的狀态可控,請求發送成功後全部交給了阿裡雲的背景系統,控制台隻能看到”遷出資料中”和”遷入資料中”的狀态,假設報錯了也無法看到錯誤的資訊