今日要介紹阿里雲數據傳輸服務(Data Transmission Service;DTS),筆者平日在地端資料庫備份到VM上,隨著使用雲端服務越來越多的狀況下,除了可以使用第三方軟體Percona XtraBackupex將地端資料庫同步到雲端RDS外,阿里雲也有推出數據傳輸服務DTS可以將地端資料庫備份上傳到雲端,透過DTS還可以進行RDS同步到RDS上,以下會進行實務操作。

MySQL備份示意圖。
前提條件
- Destination RDS需要磁碟空間要大於Sourcec RDS。
- Sourcec和Destination兩台RDS盡量是相同版本或是Destination RDS版本比較新,以避免相容性問題,例如: 以下實務操作兩台RDS的版本是RDS for MySQL 5.7。
實務操作
1.操作DTS前要先開啟DTS服務,可以在搜尋欄位找到該服務後開啟。
1.1 開啟DTS服務後,點選Data Synchronization。
1.2 依照Synchronization Instance的Region所在地去選。
1.3 點選Create Task。

2.輸入Sourcec和Destination兩台RDS的資訊,下圖是操作Source Database的相關設定,而Destination Database也是大同小異就不附圖了。
2.1 選擇Source Instance ID。
2.2 選擇Database所在Region。
2.3 選擇Database ID。
2.4 輸入帳戶。
2.5 輸入密碼。

3.資料遷移
3.1 這邊選擇結構遷移和全量數據遷移,暫時不選擇增量備份,後續還可以開啟。
3.2 選擇預先檢查並報告錯誤。
3.3 這邊選單向同步。
3.4 將Source Database複製到Destination Database。

4.開始檢查有無錯誤,下圖確認完成後是100%。

5.購買Synchronization Instance,在同步傳輸進行時(建議是服務低負載時進行),依照Instance規格能讓服務有著不同的性能,這邊是選用micro RPS(每秒增量到同步到Destination table的數據行數)200。

6.等待同步傳輸完成。

7.已經同步完成,可以在兩台RDS上看到都有相同資料庫。

結語
以往筆者的MySQL都在地端環境進行資料備份,現在換到雲端環境後可以透過阿里雲的DTS服務做到地端跟雲端資料庫之間的傳輸可以做到熱遷移,使用中的服務不會中斷,又可以使用增量備分減少後續更新資料庫時間,今天做了RDS跟RDS之間的同步傳輸為之後的資料庫備份累積些經驗,提供給讀者參考看看。
*本文由宏庭架構師所撰寫,同步刊登於iThome 鐵人賽專區
.>更多阿里雲相關內容,再且密切追蹤阿里雲架構師專欄