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