開發與維運

ImportDatabaseBetweenInstances使用實例

作者:手辨

第一節
ImportDatabaseBetweenInstances的作用

具體參考阿里雲幫助文檔的說明:https://help.aliyun.com/document_detail/26301.html

第二節 使用實例

2.1 Rds準備

華東1Rds實例A:

5f71cd52ebdb5eb180f603de80acd4bd18fa9c6c

08a1c53c74de105581c11d258c952ae0c999c861

36f46957ef512f851c0f72fe40ded87797188c0c

華東1Rds實例B:

8dcf70a00ce0bc4a35c07a8420251c0ca0ee06ac

6544c2ccb7c8e744374eff444411c28ab460dc6b

Rds cli:

此處使用阿里雲RDS命令行工具進行調用,安裝和下載:

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

此處一定要確定使用的是該連接的cli,即命令開始是rds  不是aliyuncli rds,對比如下:

ab695898d9b78d2ecef1ebe5704d3c0377c98b26

實現目標:將華東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"']}

 

結果如下:

f7b4f5bc60f28bbc5ee4d02dc5af2bce7f9bfe08

實例的狀態變化如下:

c90175f2b0fd3b5b1b64facba6759a0c7b5e14b1

fe34a5e9865bce657c08568b19b885fd08fbe83d

任務完成後,實例狀態會變為”運行中”,遷移時可能因為其他原因時間會比較長,需要等待

因為測試是隻有一個測試表,2分鐘就完成了,完成後查看目標實例的數據如下:

eb5a89b131a467ac357f1c2159653cc9119a026e

這樣就執行完成了兩個rds實例之間數據庫的遷移,個人更傾向於使用dts以及其他的方式來實現數據的遷移,使用該api的調用無法對遷移的任務以及遷移的狀態可控,請求發送成功後全部交給了阿里雲的後臺系統,控制檯只能看到”遷出數據中”和”遷入數據中”的狀態,假設報錯了也無法看到錯誤的信息

Leave a Reply

Your email address will not be published. Required fields are marked *