AWS 使用 DMS 遷移 RDS 資料
分類
說明
以前都是用資料庫應用程式將資料匯出,接著再匯入另一個資料庫,這次我將分享使用 DMS (Database Migration Service) 把舊的 RDS 資料庫裡面的資料遷移到新的 RDS。
前言
原本我只想用 Take Snapshot 快速生成新的 RDS,但不知道什麼原因,我生成新的 RDS 裡面卻沒有資料,不知道是 snapshot 本身就不會複製資料還是出了什麼差錯,水太深了,最後我使用 DMS 成功將舊的 RDS 資料庫裡面的資料遷移到新的 RDS。
建立 Replication instance
replication instance 就是建立一台主機,這台主機會負責處理資料遷移的任務。
進入 DMS 服務後,點擊 Create replication instance。
設定輸入自訂 name。
選擇合適的實體配置方案,下圖是低預算方案。
Connectivity and security 都選擇預設選項。
Maintenance 預設即可。
最後點擊 Create replication instance。
建立 Endpoints
終端就是資料庫的位置,你需要設定 Source 源頭和 Target 目的。然後再開啟任務,進行遷移。
源頭和目的終端設定方式都一樣,這裡只寫一次建立 Endpoint,讀者在自行建立兩個終端。
點擊 Create endpoint。
- 選擇源頭終端 Source endpoint 或者目的終端 Target endpoint。
- 本範例是從 rds 遷移到另一個 rds,所以勾選 Select RDS DB instance。
- 選擇 RDS Instance。
當你選擇完 RDS Instance,Endpoint configuration 會自動帶入資料,沒意外的話讓資料保持自動帶入的即可。
- 選擇 Provide access information manually,這個方式水比較不深。
- 黑色部分保留預設,視個人情況修改。
- 輸入 database 登入密碼。
- SSL 模式選擇 require,因為有些 RDS 只允許 SSL 連線,跟只能用 https 連線意思差不多。
- Replication instance 選擇剛剛建立的。
- Test endpoint connection 等建立後再測試連線。
- Endpoint settings 和 KMS key 保持預設。
- 點擊 Create endpoint。
測試 Endpoint 連線
選擇任一 endpoint 點擊 Connections > Test connections 按鈕,下圖 successful 代表連線成功。
進入 Test endpoint connection 點擊 Run Test 進行測試。
建立 Task
- 點擊 Create Task。
- 自訂 Task identifier 名稱。
- Replication instance 和 endpoints 選擇剛剛建立的。
- 這個選項水很深,看了說明也不是很懂,以目前需求選擇 Migrate existing data 即可。
- Target table preparation mode 目標如果已存在 table 選項說明:
- Do nothing: 不會刪除 Table,保留之前的資料。
- Drop tables on target: 會刪除 table 重建一份舊的 table。
- Truncate: 保留 table,將資料刪除。
- Target table preparation mode 的 Drop tables on target 比較乾淨。
- 其他選項保持預設。
- 處理任務會在目標資料庫建立 table,是否要記錄可自行選擇。
- 選擇 Manually later,代表建立任務時不要自動啟動任務,可以再進行最終確認。
應該還有複製規則沒有寫到,礙於我現在沒有兩個 RDS 無法演示給大家看,如果沒有太多需求,應該就是在 include 規則全部輸入 %,代表源頭所有 schema 的所有 table 都進行遷移,其他規則請讀者在自行設定。
最後按下 Create Task,然後 Task 在 Ready 的時候進入 Task,點擊 Action 選擇 Restart 開始任務。
如果任務失敗,在 Table statistics 可以查看哪個 Table 失敗,一般可能是關聯失敗,例如:某張表的外部鍵不存在之類的。
一杯咖啡的力量,勝過千言萬語的感謝。
支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!