天天看點

ImportDatabaseBetweenInstances使用執行個體

華東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執行個體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"']}

結果如下:

ImportDatabaseBetweenInstances使用執行個體

執行個體的狀态變化如下:

ImportDatabaseBetweenInstances使用執行個體
ImportDatabaseBetweenInstances使用執行個體

任務完成後,執行個體狀态會變為”運作中”,遷移時可能因為其他原因時間會比較長,需要等待

因為測試是隻有一個測試表,2分鐘就完成了,完成後檢視目标執行個體的資料如下:

ImportDatabaseBetweenInstances使用執行個體

這樣就執行完成了兩個rds執行個體之間資料庫的遷移,個人更傾向于使用dts以及其他的方式來實作資料的遷移,使用該api的調用無法對遷移的任務以及遷移的狀态可控,請求發送成功後全部交給了阿裡雲的背景系統,控制台隻能看到”遷出資料中”和”遷入資料中”的狀态,假設報錯了也無法看到錯誤的資訊